numba/numba

meta-issue: All NumPy functions with no implementation

Open

#4,074 opened on May 10, 2019

View on GitHub
 (41 comments) (17 reactions) (0 assignees)Python (9,177 stars) (1,132 forks)batch import
easyfeature_requestgood first issuegood second issuenumpy

Description

Below are lists of feasible but not yet implemented NumPy functions... ideal for first time contributors. If you would like to contribute a function, please first check the open "Pull Requests" to make sure someone else isn't already working on the one you chose! If the check-box next to the function is checked it means the function is already done...

As a new contributor, some instructions for getting set up for development are here and are a great place to start.

It should be possible to write these functions using the numba.extending.overload functionality, they are of varying difficulty. A guide to using @overload is here:

  • [ ] np.alen deprecated, see https://github.com/numpy/numpy/issues/14155
  • np.allclose
  • np.alltrue
  • np.append
  • np.argpartition
  • np.argwhere
  • np.around
  • np.array_equal
  • np.array_split
  • np.asanyarray
  • np.asarray_chkfinite
  • np.asfarray
  • [ ] np.asscalar deprecated, see https://github.com/numpy/numpy/pull/20414
  • np.atleast_1d
  • np.atleast_2d
  • np.atleast_3d
  • np.bartlett
  • np.binary_repr
  • np.bincount
  • np.blackman
  • np.compress
  • np.count_nonzero
  • np.cross
  • np.cumproduct (just needs wiring)
  • np.diag_indices
  • np.diag_indices_from
  • np.diagflat
  • np.euler_gamma (constant)
  • np.fastCopyAndTranspose deprecated, see https://github.com/numpy/numpy/pull/22313
  • np.floatnonzero
  • np.fliplr
  • np.flipud
  • [ ] np.fv deprecated see NumPy's NEP-0032.
  • np.geomspace
  • np.hamming
  • np.hanning
  • np.hsplit
  • np.i0
  • np.in1d ~ deprecated and removed https://github.com/numpy/numpy/pull/29978
  • np.indices
  • np.infty (constant)
  • np.inner
  • np.intersect1d
  • [ ] np.ipmt deprecated see NumPy's NEP-0032.
  • [ ] np.irr deprecated see NumPy's NEP-0032.
  • np.isclose
  • np.iscomplex
  • np.iscomplexobj
  • np.isfortran
  • np.isin
  • np.isnat
  • np.isneginf
  • np.isposinf
  • np.isreal
  • np.isrealobj
  • np.isscalar
  • np.kaiser
  • np.little_endian
  • np.logspace
  • np.meshgrid
  • [ ] np.mirr deprecated see NumPy's NEP-0032.
  • [ ] np.msort (largely wiring!) deprecated, see https://github.com/numpy/numpy/pull/22456
  • np.nan_to_num
  • np.nanargmax
  • np.nanargmin
  • np.ndim (just needs wiring)
  • np.newaxis (just needs wiring)
  • [ ] np.nper deprecated see NumPy's NEP-0032.
  • [ ] np.npv deprecated see NumPy's NEP-0032.
  • np.place
  • [ ] np.pmt deprecated see NumPy's NEP-0032.
  • np.poly
  • np.polyadd
  • np.polyder
  • np.polydiv
  • np.polyint
  • np.polymul
  • np.polysub
  • np.polyval
  • [ ] np.ppmt deprecated see NumPy's NEP-0032.
  • np.product (just needs wiring)
  • np.put
  • np.putmask
  • [ ] np.pv deprecated see NumPy's NEP-0032.
  • [ ] np.rate deprecated see NumPy's NEP-0032.
  • np.resize
  • np.rot90
  • np.row_stack
  • np.select
  • np.setdiff1d
  • np.setxor1d
  • np.size (mostly wiring)
  • np.sometrue (just needs wiring) (deprecated with 1.25
  • np.sortcomplex
  • np.split
  • np.tril_indices
  • np.tril_indices_from
  • np.triu_indices
  • np.triu_indices_from
  • np.trim_zeros
  • np.union1d
  • np.unravel_index
  • np.unwrap
  • np.vsplit

It is also seemingly possible to write these functions with numba.extending.overload but they are harder/it is less easy to determined difficultly in implementing these:

  • np.choose
  • np.common_type
  • np.copyto
  • np.dsplit
  • np.dstack
  • np.fix
  • np.gradient
  • np.histogram2d
  • np.histogramdd
  • np.insert
  • np.ix_
  • np.lexsort
  • np.mask_indices
  • np.maximum_sctype
  • np.nested_iters
  • np.pad
  • np.piecewise
  • np.polyfit
  • np.put_along_axis
  • np.squeeze
  • np.swapaxis
  • np.tensordor

These are likely to need lower level work:

  • np.broadcast_to
  • np.broadcast_arrays
  • np.byte_bounds
  • np.packbits
  • np.unpackbits

Contributor guide