Vue d'ensemble
SciPy 1.6, publié le 3 janvier 2021, apporte des améliorations aux tableaux creux et de nouvelles méthodes d'interpolation.
Fonctionnalités principales
Améliorations des tableaux creux
Le module scipy.sparse gagne de nouvelles opérations arithmétiques et un meilleur support du format CSR/CSC pour les opérations en place. Les multiplications matrice-vecteur sont aussi accélérées.
python
from scipy import sparse
import numpy as np
# Création d'une matrice creuse 1000x1000 (1% remplie)
matrice = sparse.random(1000, 1000, density=0.01, format='csr')
print(f'Éléments non nuls : {matrice.nnz}') # ~10000
# Opérations rapides sur matrices creuses
resultat = matrice @ matrice.T # produit matrice creuse
print(f'Forme : {resultat.shape}') # (1000, 1000)
# Conversion efficace entre formats
csc = matrice.tocsc() # pour accès par colonne
print(f'Format : {csc.format}') # csc
Nouvelles interpolations
Le module scipy.interpolate ajoute de nouveaux algorithmes, notamment des B-splines améliorées et des méthodes d'interpolation monotone sur données irrégulières.
python
from scipy.interpolate import make_interp_spline
import numpy as np
# Données de mesure irrégulières
x = np.array([0, 1, 3, 5, 8, 10])
y = np.array([0, 0.8, 0.9, 0.2, -0.5, -0.1])
# Interpolation B-spline cubique
spline = make_interp_spline(x, y, k=3)
# Évaluation sur une grille fine
x_fin = np.linspace(0, 10, 100)
y_fin = spline(x_fin)
print(f'Min interpolé : {y_fin.min():.2f}') # ~-0.58
