File: scope.rst

package info (click to toggle)
numpy 1%3A2.2.4%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 83,420 kB
  • sloc: python: 248,499; asm: 232,365; ansic: 216,874; cpp: 135,657; f90: 1,540; sh: 938; fortran: 558; makefile: 409; sed: 139; xml: 109; java: 92; perl: 79; cs: 54; javascript: 53; objc: 29; lex: 13; yacc: 9
file content (48 lines) | stat: -rw-r--r-- 2,037 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
==============
Scope of NumPy
==============

Here, we describe aspects of N-d array computation that are within scope for NumPy development. This is *not* an aspirational definition of where NumPy should aim, but instead captures the status quo—areas which we have decided to continue supporting, at least for the time being.

- **In-memory, N-dimensional, homogeneously typed (single pointer + strided) arrays on CPUs**

  - Support for a wide range of data types
  - Not specialized hardware such as GPUs
  - But, do support wide range of CPUs (e.g. ARM, PowerX)

- **Higher level APIs for N-dimensional arrays**

  - NumPy is a *de facto* standard for array APIs in Python
  - Indexing and fast iteration over elements (ufunc)
  - Interoperability protocols with other data container implementations (like
    :ref:`__array_ufunc__ and __array_function__ <basics.dispatch>`.

- **Python API and a C API** to the ndarray's methods and attributes.

- Other **specialized types or uses of N-dimensional arrays**:

  - Masked arrays
  - Structured arrays (informally known as record arrays)
  - Memory mapped arrays

- Historically, NumPy has included the following **basic functionality
  in support of scientific computation**. We intend to keep supporting
  (but not to expand) what is currently included:

  - Linear algebra
  - Fast Fourier transforms and windowing
  - Pseudo-random number generators
  - Polynomial fitting

- NumPy provides some **infrastructure for other packages in the scientific Python ecosystem**:

  - numpy.distutils (build support for C++, Fortran, BLAS/LAPACK, and other
    relevant libraries for scientific computing)
  - f2py (generating bindings for Fortran code)
  - testing utilities

- **Speed**: we take performance concerns seriously and aim to execute
  operations on large arrays with similar performance as native C
  code. That said, where conflict arises, maintenance and portability take
  precedence over performance. We aim to prevent regressions where
  possible (e.g., through asv).