Vue d'ensemble

SciPy 1.11, publié le 26 juin 2023, améliore la compatibilité Array API et les opérations sur les matrices creuses.

Fonctionnalités principales

Compatibilité Array API

SciPy 1.11 progresse vers la conformité Array API, permettant d'utiliser des backends alternatifs comme CuPy ou JAX pour les calculs scientifiques.

python
from scipy import linalg
import numpy as np

# Décomposition LU
A = np.array([[2, 5, 8], [4, 6, 3], [7, 1, 9]])
P, L, U = linalg.lu(A)
print(f'L diagonal : {np.diag(L)}')

# Vérification : P @ L @ U == A
print(np.allclose(P @ L @ U, A))  # True

Améliorations sparse

Le module scipy.sparse bénéficie de nouvelles opérations optimisées et d'une meilleure intégration avec les solveurs linéaires.

python
from scipy import sparse
from scipy.sparse.linalg import spsolve
import numpy as np

n = 1000
A = sparse.diags([-1, 2, -1], [-1, 0, 1], shape=(n, n),
                  format='csr')
b = np.ones(n)
x = spsolve(A, b)
print(f'Solution min/max : {x.min():.2f} / {x.max():.2f}')

Sources