Vue d'ensemble

NumPy 1.22, publié le 15 janvier 2022, apporte des changements dans la promotion de types et améliore les annotations de type.

Fonctionnalités principales

Promotion de types

Les règles de promotion de types ont été revues pour être plus cohérentes. Les opérations entre scalaires Python et tableaux NumPy produisent désormais des résultats plus prévisibles.

python
import numpy as np

# Promotion de types améliorée
a = np.array([1, 2, 3], dtype=np.int8)
result = a + 1  # reste int8, pas int64
print(result.dtype)  # int8

# Comportement cohérent avec les scalaires
b = np.float32(1.0) + np.float64(2.0)
print(type(b))  # numpy.float64

Annotations de type améliorées

Les annotations de type sont étendues avec de nouveaux types génériques pour ndarray, permettant une vérification statique plus fine avec mypy.

python
import numpy as np
import numpy.typing as npt

# Annotations de type plus précises
def moyenne_ponderee(
    valeurs: npt.NDArray[np.float64],
    poids: npt.NDArray[np.float64],
) -> np.float64:
    return np.average(valeurs, weights=poids)

v = np.array([10.0, 20.0, 30.0])
p = np.array([0.2, 0.5, 0.3])
print(moyenne_ponderee(v, p))  # 20.0

Sources