Vue d'ensemble

SciPy 1.12, publie le 24 janvier 2024, prepare la compatibilite NumPy 2.0 et ajoute de nouveaux solveurs dans scipy.optimize.

Fonctionnalites principales

Preparation NumPy 2.0

SciPy 1.12 est compatible avec NumPy 2.0 dev, facilitant la transition pour l'ecosysteme scientifique Python.

python
import scipy
import numpy as np

print(f'SciPy: {scipy.__version__}')   # 1.12.x
print(f'NumPy: {np.__version__}')       # compatible 1.x et 2.x

# Les API depreciees dans NumPy 2.0 sont mises a jour
from scipy import sparse
m = sparse.eye(3, format='csr')
print(m.toarray())

Nouveaux solveurs

Le module scipy.optimize gagne de nouveaux algorithmes pour la programmation lineaire et l'optimisation sous contraintes.

python
from scipy.optimize import milp, LinearConstraint, Bounds

# Programmation lineaire en nombres entiers (MILP)
c = [-1, -2]  # minimiser -x - 2y
constraints = LinearConstraint([[1, 1], [1, 0]], ub=[4, 3])
integrality = [1, 1]  # variables entieres

result = milp(c, constraints=constraints,
              integrality=integrality, bounds=Bounds(0, None))
print(result.x)  # [1.0, 3.0]

Sources