Our best bet for proper array-api types is optype, but that doesn't exist yet, see jorenham/optype#25. There, I also explain why the official array api "stubs" (which aren't stubs) are completely useless...
Relevant scipy bits
The Array API is partially supported scipy. The following packages support is fully:
scipy.cluster
scipy.constants (trivial)
scipy.datasets (trivial)
scipy.fft
[i][r|h]fft[2|n]
[i]dct[n]
[i]dst[n]
[r]fftfreq
[i]fftshift
scipy.io
scipy.ndimage
Additionally, the following scipy.special functions have array api support:
Typing the array API
Our best bet for proper
array-api
types isoptype
, but that doesn't exist yet, see jorenham/optype#25. There, I also explain why the official array api "stubs" (which aren't stubs) are completely useless...Relevant
scipy
bitsThe Array API is partially supported
scipy
. The following packages support is fully:scipy.cluster
scipy.constants
(trivial)scipy.datasets
(trivial)scipy.fft
[i][r|h]fft[2|n]
[i]dct[n]
[i]dst[n]
[r]fftfreq
[i]fftshift
scipy.io
scipy.ndimage
Additionally, the following
scipy.special
functions have array api support:log_ndtr
ndtr
ndtri
chdtrc
erf
erfc
i0
i0e
i1
i1e
gammaln
gammainc
gammaincc
logit
expit
entr
rel_entr
xlogy
as well as the following
scipy.stats
functions:describe
moment
skew
kurtosis
kstat
kstatvar
circmean
circvar
circstd
entropy
variation
sem
ttest_1samp
pearsonr
chisquare
skewtest
kurtosistest
normaltest
jarque_bera
bartlett
power_divergence
monte_carlo_test
How Scipy implements it
Internally,
scipy
implements the support inscipy._lib._array_api
. From the looks of it, this module will come with a bunch of extra utility functions inscipy 1.15
(37174ad
), as well as an additionalscipy._lib._array_api_no_0d
module in281a8c3
Libraries that support it
Some libraries require
array-api-compat
for them to support the array-api (2022):numpy < 2
cupy
pytorch
dask > 2023.12.0
ndonnx
the following libraries have native support:
numpy >= 2
cupy
(but not really)jax
sparse
ndonnx
Other relevant links: