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

Sources