|
""" |
|
This is only meant to add docs to objects defined in C-extension modules. |
|
The purpose is to allow easier editing of the docstrings without |
|
requiring a re-compile. |
|
|
|
NOTE: Many of the methods of ndarray have corresponding functions. |
|
If you update these docstrings, please keep also the ones in |
|
core/fromnumeric.py, core/defmatrix.py up-to-date. |
|
|
|
""" |
|
from __future__ import division, absolute_import, print_function |
|
|
|
from numpy.lib import add_newdoc |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
add_newdoc('numpy.core', 'flatiter', |
|
""" |
|
Flat iterator object to iterate over arrays. |
|
|
|
A `flatiter` iterator is returned by ``x.flat`` for any array `x`. |
|
It allows iterating over the array as if it were a 1-D array, |
|
either in a for-loop or by calling its `next` method. |
|
|
|
Iteration is done in C-contiguous style, with the last index varying the |
|
fastest. The iterator can also be indexed using basic slicing or |
|
advanced indexing. |
|
|
|
See Also |
|
-------- |
|
ndarray.flat : Return a flat iterator over an array. |
|
ndarray.flatten : Returns a flattened copy of an array. |
|
|
|
Notes |
|
----- |
|
A `flatiter` iterator can not be constructed directly from Python code |
|
by calling the `flatiter` constructor. |
|
|
|
Examples |
|
-------- |
|
>>> x = np.arange(6).reshape(2, 3) |
|
>>> fl = x.flat |
|
>>> type(fl) |
|
<type 'numpy.flatiter'> |
|
>>> for item in fl: |
|
... print item |
|
... |
|
0 |
|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
|
|
>>> fl[2:4] |
|
array([2, 3]) |
|
|
|
""") |
|
|
|
|
|
|
|
add_newdoc('numpy.core', 'flatiter', ('base', |
|
""" |
|
A reference to the array that is iterated over. |
|
|
|
Examples |
|
-------- |
|
>>> x = np.arange(5) |
|
>>> fl = x.flat |
|
>>> fl.base is x |
|
True |
|
|
|
""")) |
|
|
|
|
|
|
|
add_newdoc('numpy.core', 'flatiter', ('coords', |
|
""" |
|
An N-dimensional tuple of current coordinates. |
|
|
|
Examples |
|
-------- |
|
>>> x = np.arange(6).reshape(2, 3) |
|
>>> fl = x.flat |
|
>>> fl.coords |
|
(0, 0) |
|
>>> fl.next() |
|
0 |
|
>>> fl.coords |
|
(0, 1) |
|
|
|
""")) |
|
|
|
|
|
|
|
add_newdoc('numpy.core', 'flatiter', ('index', |
|
""" |
|
Current flat index into the array. |
|
|
|
Examples |
|
-------- |
|
>>> x = np.arange(6).reshape(2, 3) |
|
>>> fl = x.flat |
|
>>> fl.index |
|
0 |
|
>>> fl.next() |
|
0 |
|
>>> fl.index |
|
1 |
|
|
|
""")) |
|
|
|
|
|
|
|
add_newdoc('numpy.core', 'flatiter', ('__array__', |
|
"""__array__(type=None) Get array from iterator |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core', 'flatiter', ('copy', |
|
""" |
|
copy() |
|
|
|
Get a copy of the iterator as a 1-D array. |
|
|
|
Examples |
|
-------- |
|
>>> x = np.arange(6).reshape(2, 3) |
|
>>> x |
|
array([[0, 1, 2], |
|
[3, 4, 5]]) |
|
>>> fl = x.flat |
|
>>> fl.copy() |
|
array([0, 1, 2, 3, 4, 5]) |
|
|
|
""")) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
add_newdoc('numpy.core', 'nditer', |
|
""" |
|
Efficient multi-dimensional iterator object to iterate over arrays. |
|
To get started using this object, see the |
|
:ref:`introductory guide to array iteration <arrays.nditer>`. |
|
|
|
Parameters |
|
---------- |
|
op : ndarray or sequence of array_like |
|
The array(s) to iterate over. |
|
flags : sequence of str, optional |
|
Flags to control the behavior of the iterator. |
|
|
|
* "buffered" enables buffering when required. |
|
* "c_index" causes a C-order index to be tracked. |
|
* "f_index" causes a Fortran-order index to be tracked. |
|
* "multi_index" causes a multi-index, or a tuple of indices |
|
with one per iteration dimension, to be tracked. |
|
* "common_dtype" causes all the operands to be converted to |
|
a common data type, with copying or buffering as necessary. |
|
* "delay_bufalloc" delays allocation of the buffers until |
|
a reset() call is made. Allows "allocate" operands to |
|
be initialized before their values are copied into the buffers. |
|
* "external_loop" causes the `values` given to be |
|
one-dimensional arrays with multiple values instead of |
|
zero-dimensional arrays. |
|
* "grow_inner" allows the `value` array sizes to be made |
|
larger than the buffer size when both "buffered" and |
|
"external_loop" is used. |
|
* "ranged" allows the iterator to be restricted to a sub-range |
|
of the iterindex values. |
|
* "refs_ok" enables iteration of reference types, such as |
|
object arrays. |
|
* "reduce_ok" enables iteration of "readwrite" operands |
|
which are broadcasted, also known as reduction operands. |
|
* "zerosize_ok" allows `itersize` to be zero. |
|
op_flags : list of list of str, optional |
|
This is a list of flags for each operand. At minimum, one of |
|
"readonly", "readwrite", or "writeonly" must be specified. |
|
|
|
* "readonly" indicates the operand will only be read from. |
|
* "readwrite" indicates the operand will be read from and written to. |
|
* "writeonly" indicates the operand will only be written to. |
|
* "no_broadcast" prevents the operand from being broadcasted. |
|
* "contig" forces the operand data to be contiguous. |
|
* "aligned" forces the operand data to be aligned. |
|
* "nbo" forces the operand data to be in native byte order. |
|
* "copy" allows a temporary read-only copy if required. |
|
* "updateifcopy" allows a temporary read-write copy if required. |
|
* "allocate" causes the array to be allocated if it is None |
|
in the `op` parameter. |
|
* "no_subtype" prevents an "allocate" operand from using a subtype. |
|
* "arraymask" indicates that this operand is the mask to use |
|
for selecting elements when writing to operands with the |
|
'writemasked' flag set. The iterator does not enforce this, |
|
but when writing from a buffer back to the array, it only |
|
copies those elements indicated by this mask. |
|
* 'writemasked' indicates that only elements where the chosen |
|
'arraymask' operand is True will be written to. |
|
op_dtypes : dtype or tuple of dtype(s), optional |
|
The required data type(s) of the operands. If copying or buffering |
|
is enabled, the data will be converted to/from their original types. |
|
order : {'C', 'F', 'A', 'K'}, optional |
|
Controls the iteration order. 'C' means C order, 'F' means |
|
Fortran order, 'A' means 'F' order if all the arrays are Fortran |
|
contiguous, 'C' order otherwise, and 'K' means as close to the |
|
order the array elements appear in memory as possible. This also |
|
affects the element memory order of "allocate" operands, as they |
|
are allocated to be compatible with iteration order. |
|
Default is 'K'. |
|
casting : {'no', 'equiv', 'safe', 'same_kind', 'unsafe'}, optional |
|
Controls what kind of data casting may occur when making a copy |
|
or buffering. Setting this to 'unsafe' is not recommended, |
|
as it can adversely affect accumulations. |
|
|
|
* 'no' means the data types should not be cast at all. |
|
* 'equiv' means only byte-order changes are allowed. |
|
* 'safe' means only casts which can preserve values are allowed. |
|
* 'same_kind' means only safe casts or casts within a kind, |
|
like float64 to float32, are allowed. |
|
* 'unsafe' means any data conversions may be done. |
|
op_axes : list of list of ints, optional |
|
If provided, is a list of ints or None for each operands. |
|
The list of axes for an operand is a mapping from the dimensions |
|
of the iterator to the dimensions of the operand. A value of |
|
-1 can be placed for entries, causing that dimension to be |
|
treated as "newaxis". |
|
itershape : tuple of ints, optional |
|
The desired shape of the iterator. This allows "allocate" operands |
|
with a dimension mapped by op_axes not corresponding to a dimension |
|
of a different operand to get a value not equal to 1 for that |
|
dimension. |
|
buffersize : int, optional |
|
When buffering is enabled, controls the size of the temporary |
|
buffers. Set to 0 for the default value. |
|
|
|
Attributes |
|
---------- |
|
dtypes : tuple of dtype(s) |
|
The data types of the values provided in `value`. This may be |
|
different from the operand data types if buffering is enabled. |
|
finished : bool |
|
Whether the iteration over the operands is finished or not. |
|
has_delayed_bufalloc : bool |
|
If True, the iterator was created with the "delay_bufalloc" flag, |
|
and no reset() function was called on it yet. |
|
has_index : bool |
|
If True, the iterator was created with either the "c_index" or |
|
the "f_index" flag, and the property `index` can be used to |
|
retrieve it. |
|
has_multi_index : bool |
|
If True, the iterator was created with the "multi_index" flag, |
|
and the property `multi_index` can be used to retrieve it. |
|
index : |
|
When the "c_index" or "f_index" flag was used, this property |
|
provides access to the index. Raises a ValueError if accessed |
|
and `has_index` is False. |
|
iterationneedsapi : bool |
|
Whether iteration requires access to the Python API, for example |
|
if one of the operands is an object array. |
|
iterindex : int |
|
An index which matches the order of iteration. |
|
itersize : int |
|
Size of the iterator. |
|
itviews : |
|
Structured view(s) of `operands` in memory, matching the reordered |
|
and optimized iterator access pattern. |
|
multi_index : |
|
When the "multi_index" flag was used, this property |
|
provides access to the index. Raises a ValueError if accessed |
|
accessed and `has_multi_index` is False. |
|
ndim : int |
|
The iterator's dimension. |
|
nop : int |
|
The number of iterator operands. |
|
operands : tuple of operand(s) |
|
The array(s) to be iterated over. |
|
shape : tuple of ints |
|
Shape tuple, the shape of the iterator. |
|
value : |
|
Value of `operands` at current iteration. Normally, this is a |
|
tuple of array scalars, but if the flag "external_loop" is used, |
|
it is a tuple of one dimensional arrays. |
|
|
|
Notes |
|
----- |
|
`nditer` supersedes `flatiter`. The iterator implementation behind |
|
`nditer` is also exposed by the Numpy C API. |
|
|
|
The Python exposure supplies two iteration interfaces, one which follows |
|
the Python iterator protocol, and another which mirrors the C-style |
|
do-while pattern. The native Python approach is better in most cases, but |
|
if you need the iterator's coordinates or index, use the C-style pattern. |
|
|
|
Examples |
|
-------- |
|
Here is how we might write an ``iter_add`` function, using the |
|
Python iterator protocol:: |
|
|
|
def iter_add_py(x, y, out=None): |
|
addop = np.add |
|
it = np.nditer([x, y, out], [], |
|
[['readonly'], ['readonly'], ['writeonly','allocate']]) |
|
for (a, b, c) in it: |
|
addop(a, b, out=c) |
|
return it.operands[2] |
|
|
|
Here is the same function, but following the C-style pattern:: |
|
|
|
def iter_add(x, y, out=None): |
|
addop = np.add |
|
|
|
it = np.nditer([x, y, out], [], |
|
[['readonly'], ['readonly'], ['writeonly','allocate']]) |
|
|
|
while not it.finished: |
|
addop(it[0], it[1], out=it[2]) |
|
it.iternext() |
|
|
|
return it.operands[2] |
|
|
|
Here is an example outer product function:: |
|
|
|
def outer_it(x, y, out=None): |
|
mulop = np.multiply |
|
|
|
it = np.nditer([x, y, out], ['external_loop'], |
|
[['readonly'], ['readonly'], ['writeonly', 'allocate']], |
|
op_axes=[range(x.ndim)+[-1]*y.ndim, |
|
[-1]*x.ndim+range(y.ndim), |
|
None]) |
|
|
|
for (a, b, c) in it: |
|
mulop(a, b, out=c) |
|
|
|
return it.operands[2] |
|
|
|
>>> a = np.arange(2)+1 |
|
>>> b = np.arange(3)+1 |
|
>>> outer_it(a,b) |
|
array([[1, 2, 3], |
|
[2, 4, 6]]) |
|
|
|
Here is an example function which operates like a "lambda" ufunc:: |
|
|
|
def luf(lamdaexpr, *args, **kwargs): |
|
"luf(lambdaexpr, op1, ..., opn, out=None, order='K', casting='safe', buffersize=0)" |
|
nargs = len(args) |
|
op = (kwargs.get('out',None),) + args |
|
it = np.nditer(op, ['buffered','external_loop'], |
|
[['writeonly','allocate','no_broadcast']] + |
|
[['readonly','nbo','aligned']]*nargs, |
|
order=kwargs.get('order','K'), |
|
casting=kwargs.get('casting','safe'), |
|
buffersize=kwargs.get('buffersize',0)) |
|
while not it.finished: |
|
it[0] = lamdaexpr(*it[1:]) |
|
it.iternext() |
|
return it.operands[0] |
|
|
|
>>> a = np.arange(5) |
|
>>> b = np.ones(5) |
|
>>> luf(lambda i,j:i*i + j/2, a, b) |
|
array([ 0.5, 1.5, 4.5, 9.5, 16.5]) |
|
|
|
""") |
|
|
|
|
|
|
|
add_newdoc('numpy.core', 'nditer', ('copy', |
|
""" |
|
copy() |
|
|
|
Get a copy of the iterator in its current state. |
|
|
|
Examples |
|
-------- |
|
>>> x = np.arange(10) |
|
>>> y = x + 1 |
|
>>> it = np.nditer([x, y]) |
|
>>> it.next() |
|
(array(0), array(1)) |
|
>>> it2 = it.copy() |
|
>>> it2.next() |
|
(array(1), array(2)) |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core', 'nditer', ('debug_print', |
|
""" |
|
debug_print() |
|
|
|
Print the current state of the `nditer` instance and debug info to stdout. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core', 'nditer', ('enable_external_loop', |
|
""" |
|
enable_external_loop() |
|
|
|
When the "external_loop" was not used during construction, but |
|
is desired, this modifies the iterator to behave as if the flag |
|
was specified. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core', 'nditer', ('iternext', |
|
""" |
|
iternext() |
|
|
|
Check whether iterations are left, and perform a single internal iteration |
|
without returning the result. Used in the C-style pattern do-while |
|
pattern. For an example, see `nditer`. |
|
|
|
Returns |
|
------- |
|
iternext : bool |
|
Whether or not there are iterations left. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core', 'nditer', ('remove_axis', |
|
""" |
|
remove_axis(i) |
|
|
|
Removes axis `i` from the iterator. Requires that the flag "multi_index" |
|
be enabled. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core', 'nditer', ('remove_multi_index', |
|
""" |
|
remove_multi_index() |
|
|
|
When the "multi_index" flag was specified, this removes it, allowing |
|
the internal iteration structure to be optimized further. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core', 'nditer', ('reset', |
|
""" |
|
reset() |
|
|
|
Reset the iterator to its initial state. |
|
|
|
""")) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
add_newdoc('numpy.core', 'broadcast', |
|
""" |
|
Produce an object that mimics broadcasting. |
|
|
|
Parameters |
|
---------- |
|
in1, in2, ... : array_like |
|
Input parameters. |
|
|
|
Returns |
|
------- |
|
b : broadcast object |
|
Broadcast the input parameters against one another, and |
|
return an object that encapsulates the result. |
|
Amongst others, it has ``shape`` and ``nd`` properties, and |
|
may be used as an iterator. |
|
|
|
Examples |
|
-------- |
|
Manually adding two vectors, using broadcasting: |
|
|
|
>>> x = np.array([[1], [2], [3]]) |
|
>>> y = np.array([4, 5, 6]) |
|
>>> b = np.broadcast(x, y) |
|
|
|
>>> out = np.empty(b.shape) |
|
>>> out.flat = [u+v for (u,v) in b] |
|
>>> out |
|
array([[ 5., 6., 7.], |
|
[ 6., 7., 8.], |
|
[ 7., 8., 9.]]) |
|
|
|
Compare against built-in broadcasting: |
|
|
|
>>> x + y |
|
array([[5, 6, 7], |
|
[6, 7, 8], |
|
[7, 8, 9]]) |
|
|
|
""") |
|
|
|
|
|
|
|
add_newdoc('numpy.core', 'broadcast', ('index', |
|
""" |
|
current index in broadcasted result |
|
|
|
Examples |
|
-------- |
|
>>> x = np.array([[1], [2], [3]]) |
|
>>> y = np.array([4, 5, 6]) |
|
>>> b = np.broadcast(x, y) |
|
>>> b.index |
|
0 |
|
>>> b.next(), b.next(), b.next() |
|
((1, 4), (1, 5), (1, 6)) |
|
>>> b.index |
|
3 |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core', 'broadcast', ('iters', |
|
""" |
|
tuple of iterators along ``self``'s "components." |
|
|
|
Returns a tuple of `numpy.flatiter` objects, one for each "component" |
|
of ``self``. |
|
|
|
See Also |
|
-------- |
|
numpy.flatiter |
|
|
|
Examples |
|
-------- |
|
>>> x = np.array([1, 2, 3]) |
|
>>> y = np.array([[4], [5], [6]]) |
|
>>> b = np.broadcast(x, y) |
|
>>> row, col = b.iters |
|
>>> row.next(), col.next() |
|
(1, 4) |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core', 'broadcast', ('nd', |
|
""" |
|
Number of dimensions of broadcasted result. |
|
|
|
Examples |
|
-------- |
|
>>> x = np.array([1, 2, 3]) |
|
>>> y = np.array([[4], [5], [6]]) |
|
>>> b = np.broadcast(x, y) |
|
>>> b.nd |
|
2 |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core', 'broadcast', ('numiter', |
|
""" |
|
Number of iterators possessed by the broadcasted result. |
|
|
|
Examples |
|
-------- |
|
>>> x = np.array([1, 2, 3]) |
|
>>> y = np.array([[4], [5], [6]]) |
|
>>> b = np.broadcast(x, y) |
|
>>> b.numiter |
|
2 |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core', 'broadcast', ('shape', |
|
""" |
|
Shape of broadcasted result. |
|
|
|
Examples |
|
-------- |
|
>>> x = np.array([1, 2, 3]) |
|
>>> y = np.array([[4], [5], [6]]) |
|
>>> b = np.broadcast(x, y) |
|
>>> b.shape |
|
(3, 3) |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core', 'broadcast', ('size', |
|
""" |
|
Total size of broadcasted result. |
|
|
|
Examples |
|
-------- |
|
>>> x = np.array([1, 2, 3]) |
|
>>> y = np.array([[4], [5], [6]]) |
|
>>> b = np.broadcast(x, y) |
|
>>> b.size |
|
9 |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core', 'broadcast', ('reset', |
|
""" |
|
reset() |
|
|
|
Reset the broadcasted result's iterator(s). |
|
|
|
Parameters |
|
---------- |
|
None |
|
|
|
Returns |
|
------- |
|
None |
|
|
|
Examples |
|
-------- |
|
>>> x = np.array([1, 2, 3]) |
|
>>> y = np.array([[4], [5], [6]] |
|
>>> b = np.broadcast(x, y) |
|
>>> b.index |
|
0 |
|
>>> b.next(), b.next(), b.next() |
|
((1, 4), (2, 4), (3, 4)) |
|
>>> b.index |
|
3 |
|
>>> b.reset() |
|
>>> b.index |
|
0 |
|
|
|
""")) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'array', |
|
""" |
|
array(object, dtype=None, copy=True, order=None, subok=False, ndmin=0) |
|
|
|
Create an array. |
|
|
|
Parameters |
|
---------- |
|
object : array_like |
|
An array, any object exposing the array interface, an |
|
object whose __array__ method returns an array, or any |
|
(nested) sequence. |
|
dtype : data-type, optional |
|
The desired data-type for the array. If not given, then |
|
the type will be determined as the minimum type required |
|
to hold the objects in the sequence. This argument can only |
|
be used to 'upcast' the array. For downcasting, use the |
|
.astype(t) method. |
|
copy : bool, optional |
|
If true (default), then the object is copied. Otherwise, a copy |
|
will only be made if __array__ returns a copy, if obj is a |
|
nested sequence, or if a copy is needed to satisfy any of the other |
|
requirements (`dtype`, `order`, etc.). |
|
order : {'C', 'F', 'A'}, optional |
|
Specify the order of the array. If order is 'C' (default), then the |
|
array will be in C-contiguous order (last-index varies the |
|
fastest). If order is 'F', then the returned array |
|
will be in Fortran-contiguous order (first-index varies the |
|
fastest). If order is 'A', then the returned array may |
|
be in any order (either C-, Fortran-contiguous, or even |
|
discontiguous). |
|
subok : bool, optional |
|
If True, then sub-classes will be passed-through, otherwise |
|
the returned array will be forced to be a base-class array (default). |
|
ndmin : int, optional |
|
Specifies the minimum number of dimensions that the resulting |
|
array should have. Ones will be pre-pended to the shape as |
|
needed to meet this requirement. |
|
|
|
Returns |
|
------- |
|
out : ndarray |
|
An array object satisfying the specified requirements. |
|
|
|
See Also |
|
-------- |
|
empty, empty_like, zeros, zeros_like, ones, ones_like, fill |
|
|
|
Examples |
|
-------- |
|
>>> np.array([1, 2, 3]) |
|
array([1, 2, 3]) |
|
|
|
Upcasting: |
|
|
|
>>> np.array([1, 2, 3.0]) |
|
array([ 1., 2., 3.]) |
|
|
|
More than one dimension: |
|
|
|
>>> np.array([[1, 2], [3, 4]]) |
|
array([[1, 2], |
|
[3, 4]]) |
|
|
|
Minimum dimensions 2: |
|
|
|
>>> np.array([1, 2, 3], ndmin=2) |
|
array([[1, 2, 3]]) |
|
|
|
Type provided: |
|
|
|
>>> np.array([1, 2, 3], dtype=complex) |
|
array([ 1.+0.j, 2.+0.j, 3.+0.j]) |
|
|
|
Data-type consisting of more than one element: |
|
|
|
>>> x = np.array([(1,2),(3,4)],dtype=[('a','<i4'),('b','<i4')]) |
|
>>> x['a'] |
|
array([1, 3]) |
|
|
|
Creating an array from sub-classes: |
|
|
|
>>> np.array(np.mat('1 2; 3 4')) |
|
array([[1, 2], |
|
[3, 4]]) |
|
|
|
>>> np.array(np.mat('1 2; 3 4'), subok=True) |
|
matrix([[1, 2], |
|
[3, 4]]) |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core.multiarray', 'empty', |
|
""" |
|
empty(shape, dtype=float, order='C') |
|
|
|
Return a new array of given shape and type, without initializing entries. |
|
|
|
Parameters |
|
---------- |
|
shape : int or tuple of int |
|
Shape of the empty array |
|
dtype : data-type, optional |
|
Desired output data-type. |
|
order : {'C', 'F'}, optional |
|
Whether to store multi-dimensional data in C (row-major) or |
|
Fortran (column-major) order in memory. |
|
|
|
Returns |
|
------- |
|
out : ndarray |
|
Array of uninitialized (arbitrary) data with the given |
|
shape, dtype, and order. |
|
|
|
See Also |
|
-------- |
|
empty_like, zeros, ones |
|
|
|
Notes |
|
----- |
|
`empty`, unlike `zeros`, does not set the array values to zero, |
|
and may therefore be marginally faster. On the other hand, it requires |
|
the user to manually set all the values in the array, and should be |
|
used with caution. |
|
|
|
Examples |
|
-------- |
|
>>> np.empty([2, 2]) |
|
array([[ -9.74499359e+001, 6.69583040e-309], |
|
[ 2.13182611e-314, 3.06959433e-309]]) #random |
|
|
|
>>> np.empty([2, 2], dtype=int) |
|
array([[-1073741821, -1067949133], |
|
[ 496041986, 19249760]]) #random |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core.multiarray', 'empty_like', |
|
""" |
|
empty_like(a, dtype=None, order='K', subok=True) |
|
|
|
Return a new array with the same shape and type as a given array. |
|
|
|
Parameters |
|
---------- |
|
a : array_like |
|
The shape and data-type of `a` define these same attributes of the |
|
returned array. |
|
dtype : data-type, optional |
|
.. versionadded:: 1.6.0 |
|
Overrides the data type of the result. |
|
order : {'C', 'F', 'A', or 'K'}, optional |
|
.. versionadded:: 1.6.0 |
|
Overrides the memory layout of the result. 'C' means C-order, |
|
'F' means F-order, 'A' means 'F' if ``a`` is Fortran contiguous, |
|
'C' otherwise. 'K' means match the layout of ``a`` as closely |
|
as possible. |
|
subok : bool, optional. |
|
If True, then the newly created array will use the sub-class |
|
type of 'a', otherwise it will be a base-class array. Defaults |
|
to True. |
|
|
|
Returns |
|
------- |
|
out : ndarray |
|
Array of uninitialized (arbitrary) data with the same |
|
shape and type as `a`. |
|
|
|
See Also |
|
-------- |
|
ones_like : Return an array of ones with shape and type of input. |
|
zeros_like : Return an array of zeros with shape and type of input. |
|
empty : Return a new uninitialized array. |
|
ones : Return a new array setting values to one. |
|
zeros : Return a new array setting values to zero. |
|
|
|
Notes |
|
----- |
|
This function does *not* initialize the returned array; to do that use |
|
`zeros_like` or `ones_like` instead. It may be marginally faster than |
|
the functions that do set the array values. |
|
|
|
Examples |
|
-------- |
|
>>> a = ([1,2,3], [4,5,6]) # a is array-like |
|
>>> np.empty_like(a) |
|
array([[-1073741821, -1073741821, 3], #random |
|
[ 0, 0, -1073741821]]) |
|
>>> a = np.array([[1., 2., 3.],[4.,5.,6.]]) |
|
>>> np.empty_like(a) |
|
array([[ -2.00000715e+000, 1.48219694e-323, -2.00000572e+000],#random |
|
[ 4.38791518e-305, -2.00000715e+000, 4.17269252e-309]]) |
|
|
|
""") |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'scalar', |
|
""" |
|
scalar(dtype, obj) |
|
|
|
Return a new scalar array of the given type initialized with obj. |
|
|
|
This function is meant mainly for pickle support. `dtype` must be a |
|
valid data-type descriptor. If `dtype` corresponds to an object |
|
descriptor, then `obj` can be any object, otherwise `obj` must be a |
|
string. If `obj` is not given, it will be interpreted as None for object |
|
type and as zeros for all other types. |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core.multiarray', 'zeros', |
|
""" |
|
zeros(shape, dtype=float, order='C') |
|
|
|
Return a new array of given shape and type, filled with zeros. |
|
|
|
Parameters |
|
---------- |
|
shape : int or sequence of ints |
|
Shape of the new array, e.g., ``(2, 3)`` or ``2``. |
|
dtype : data-type, optional |
|
The desired data-type for the array, e.g., `numpy.int8`. Default is |
|
`numpy.float64`. |
|
order : {'C', 'F'}, optional |
|
Whether to store multidimensional data in C- or Fortran-contiguous |
|
(row- or column-wise) order in memory. |
|
|
|
Returns |
|
------- |
|
out : ndarray |
|
Array of zeros with the given shape, dtype, and order. |
|
|
|
See Also |
|
-------- |
|
zeros_like : Return an array of zeros with shape and type of input. |
|
ones_like : Return an array of ones with shape and type of input. |
|
empty_like : Return an empty array with shape and type of input. |
|
ones : Return a new array setting values to one. |
|
empty : Return a new uninitialized array. |
|
|
|
Examples |
|
-------- |
|
>>> np.zeros(5) |
|
array([ 0., 0., 0., 0., 0.]) |
|
|
|
>>> np.zeros((5,), dtype=numpy.int) |
|
array([0, 0, 0, 0, 0]) |
|
|
|
>>> np.zeros((2, 1)) |
|
array([[ 0.], |
|
[ 0.]]) |
|
|
|
>>> s = (2,2) |
|
>>> np.zeros(s) |
|
array([[ 0., 0.], |
|
[ 0., 0.]]) |
|
|
|
>>> np.zeros((2,), dtype=[('x', 'i4'), ('y', 'i4')]) # custom dtype |
|
array([(0, 0), (0, 0)], |
|
dtype=[('x', '<i4'), ('y', '<i4')]) |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core.multiarray', 'count_nonzero', |
|
""" |
|
count_nonzero(a) |
|
|
|
Counts the number of non-zero values in the array ``a``. |
|
|
|
Parameters |
|
---------- |
|
a : array_like |
|
The array for which to count non-zeros. |
|
|
|
Returns |
|
------- |
|
count : int or array of int |
|
Number of non-zero values in the array. |
|
|
|
See Also |
|
-------- |
|
nonzero : Return the coordinates of all the non-zero values. |
|
|
|
Examples |
|
-------- |
|
>>> np.count_nonzero(np.eye(4)) |
|
4 |
|
>>> np.count_nonzero([[0,1,7,0,0],[3,0,0,2,19]]) |
|
5 |
|
""") |
|
|
|
add_newdoc('numpy.core.multiarray', 'set_typeDict', |
|
"""set_typeDict(dict) |
|
|
|
Set the internal dictionary that can look up an array type using a |
|
registered code. |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core.multiarray', 'fromstring', |
|
""" |
|
fromstring(string, dtype=float, count=-1, sep='') |
|
|
|
A new 1-D array initialized from raw binary or text data in a string. |
|
|
|
Parameters |
|
---------- |
|
string : str |
|
A string containing the data. |
|
dtype : data-type, optional |
|
The data type of the array; default: float. For binary input data, |
|
the data must be in exactly this format. |
|
count : int, optional |
|
Read this number of `dtype` elements from the data. If this is |
|
negative (the default), the count will be determined from the |
|
length of the data. |
|
sep : str, optional |
|
If not provided or, equivalently, the empty string, the data will |
|
be interpreted as binary data; otherwise, as ASCII text with |
|
decimal numbers. Also in this latter case, this argument is |
|
interpreted as the string separating numbers in the data; extra |
|
whitespace between elements is also ignored. |
|
|
|
Returns |
|
------- |
|
arr : ndarray |
|
The constructed array. |
|
|
|
Raises |
|
------ |
|
ValueError |
|
If the string is not the correct size to satisfy the requested |
|
`dtype` and `count`. |
|
|
|
See Also |
|
-------- |
|
frombuffer, fromfile, fromiter |
|
|
|
Examples |
|
-------- |
|
>>> np.fromstring('\\x01\\x02', dtype=np.uint8) |
|
array([1, 2], dtype=uint8) |
|
>>> np.fromstring('1 2', dtype=int, sep=' ') |
|
array([1, 2]) |
|
>>> np.fromstring('1, 2', dtype=int, sep=',') |
|
array([1, 2]) |
|
>>> np.fromstring('\\x01\\x02\\x03\\x04\\x05', dtype=np.uint8, count=3) |
|
array([1, 2, 3], dtype=uint8) |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core.multiarray', 'fromiter', |
|
""" |
|
fromiter(iterable, dtype, count=-1) |
|
|
|
Create a new 1-dimensional array from an iterable object. |
|
|
|
Parameters |
|
---------- |
|
iterable : iterable object |
|
An iterable object providing data for the array. |
|
dtype : data-type |
|
The data-type of the returned array. |
|
count : int, optional |
|
The number of items to read from *iterable*. The default is -1, |
|
which means all data is read. |
|
|
|
Returns |
|
------- |
|
out : ndarray |
|
The output array. |
|
|
|
Notes |
|
----- |
|
Specify `count` to improve performance. It allows ``fromiter`` to |
|
pre-allocate the output array, instead of resizing it on demand. |
|
|
|
Examples |
|
-------- |
|
>>> iterable = (x*x for x in range(5)) |
|
>>> np.fromiter(iterable, np.float) |
|
array([ 0., 1., 4., 9., 16.]) |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core.multiarray', 'fromfile', |
|
""" |
|
fromfile(file, dtype=float, count=-1, sep='') |
|
|
|
Construct an array from data in a text or binary file. |
|
|
|
A highly efficient way of reading binary data with a known data-type, |
|
as well as parsing simply formatted text files. Data written using the |
|
`tofile` method can be read using this function. |
|
|
|
Parameters |
|
---------- |
|
file : file or str |
|
Open file object or filename. |
|
dtype : data-type |
|
Data type of the returned array. |
|
For binary files, it is used to determine the size and byte-order |
|
of the items in the file. |
|
count : int |
|
Number of items to read. ``-1`` means all items (i.e., the complete |
|
file). |
|
sep : str |
|
Separator between items if file is a text file. |
|
Empty ("") separator means the file should be treated as binary. |
|
Spaces (" ") in the separator match zero or more whitespace characters. |
|
A separator consisting only of spaces must match at least one |
|
whitespace. |
|
|
|
See also |
|
-------- |
|
load, save |
|
ndarray.tofile |
|
loadtxt : More flexible way of loading data from a text file. |
|
|
|
Notes |
|
----- |
|
Do not rely on the combination of `tofile` and `fromfile` for |
|
data storage, as the binary files generated are are not platform |
|
independent. In particular, no byte-order or data-type information is |
|
saved. Data can be stored in the platform independent ``.npy`` format |
|
using `save` and `load` instead. |
|
|
|
Examples |
|
-------- |
|
Construct an ndarray: |
|
|
|
>>> dt = np.dtype([('time', [('min', int), ('sec', int)]), |
|
... ('temp', float)]) |
|
>>> x = np.zeros((1,), dtype=dt) |
|
>>> x['time']['min'] = 10; x['temp'] = 98.25 |
|
>>> x |
|
array([((10, 0), 98.25)], |
|
dtype=[('time', [('min', '<i4'), ('sec', '<i4')]), ('temp', '<f8')]) |
|
|
|
Save the raw data to disk: |
|
|
|
>>> import os |
|
>>> fname = os.tmpnam() |
|
>>> x.tofile(fname) |
|
|
|
Read the raw data from disk: |
|
|
|
>>> np.fromfile(fname, dtype=dt) |
|
array([((10, 0), 98.25)], |
|
dtype=[('time', [('min', '<i4'), ('sec', '<i4')]), ('temp', '<f8')]) |
|
|
|
The recommended way to store and load data: |
|
|
|
>>> np.save(fname, x) |
|
>>> np.load(fname + '.npy') |
|
array([((10, 0), 98.25)], |
|
dtype=[('time', [('min', '<i4'), ('sec', '<i4')]), ('temp', '<f8')]) |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core.multiarray', 'frombuffer', |
|
""" |
|
frombuffer(buffer, dtype=float, count=-1, offset=0) |
|
|
|
Interpret a buffer as a 1-dimensional array. |
|
|
|
Parameters |
|
---------- |
|
buffer : buffer_like |
|
An object that exposes the buffer interface. |
|
dtype : data-type, optional |
|
Data-type of the returned array; default: float. |
|
count : int, optional |
|
Number of items to read. ``-1`` means all data in the buffer. |
|
offset : int, optional |
|
Start reading the buffer from this offset; default: 0. |
|
|
|
Notes |
|
----- |
|
If the buffer has data that is not in machine byte-order, this should |
|
be specified as part of the data-type, e.g.:: |
|
|
|
>>> dt = np.dtype(int) |
|
>>> dt = dt.newbyteorder('>') |
|
>>> np.frombuffer(buf, dtype=dt) |
|
|
|
The data of the resulting array will not be byteswapped, but will be |
|
interpreted correctly. |
|
|
|
Examples |
|
-------- |
|
>>> s = 'hello world' |
|
>>> np.frombuffer(s, dtype='S1', count=5, offset=6) |
|
array(['w', 'o', 'r', 'l', 'd'], |
|
dtype='|S1') |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core.multiarray', 'concatenate', |
|
""" |
|
concatenate((a1, a2, ...), axis=0) |
|
|
|
Join a sequence of arrays together. |
|
|
|
Parameters |
|
---------- |
|
a1, a2, ... : sequence of array_like |
|
The arrays must have the same shape, except in the dimension |
|
corresponding to `axis` (the first, by default). |
|
axis : int, optional |
|
The axis along which the arrays will be joined. Default is 0. |
|
|
|
Returns |
|
------- |
|
res : ndarray |
|
The concatenated array. |
|
|
|
See Also |
|
-------- |
|
ma.concatenate : Concatenate function that preserves input masks. |
|
array_split : Split an array into multiple sub-arrays of equal or |
|
near-equal size. |
|
split : Split array into a list of multiple sub-arrays of equal size. |
|
hsplit : Split array into multiple sub-arrays horizontally (column wise) |
|
vsplit : Split array into multiple sub-arrays vertically (row wise) |
|
dsplit : Split array into multiple sub-arrays along the 3rd axis (depth). |
|
hstack : Stack arrays in sequence horizontally (column wise) |
|
vstack : Stack arrays in sequence vertically (row wise) |
|
dstack : Stack arrays in sequence depth wise (along third dimension) |
|
|
|
Notes |
|
----- |
|
When one or more of the arrays to be concatenated is a MaskedArray, |
|
this function will return a MaskedArray object instead of an ndarray, |
|
but the input masks are *not* preserved. In cases where a MaskedArray |
|
is expected as input, use the ma.concatenate function from the masked |
|
array module instead. |
|
|
|
Examples |
|
-------- |
|
>>> a = np.array([[1, 2], [3, 4]]) |
|
>>> b = np.array([[5, 6]]) |
|
>>> np.concatenate((a, b), axis=0) |
|
array([[1, 2], |
|
[3, 4], |
|
[5, 6]]) |
|
>>> np.concatenate((a, b.T), axis=1) |
|
array([[1, 2, 5], |
|
[3, 4, 6]]) |
|
|
|
This function will not preserve masking of MaskedArray inputs. |
|
|
|
>>> a = np.ma.arange(3) |
|
>>> a[1] = np.ma.masked |
|
>>> b = np.arange(2, 5) |
|
>>> a |
|
masked_array(data = [0 -- 2], |
|
mask = [False True False], |
|
fill_value = 999999) |
|
>>> b |
|
array([2, 3, 4]) |
|
>>> np.concatenate([a, b]) |
|
masked_array(data = [0 1 2 2 3 4], |
|
mask = False, |
|
fill_value = 999999) |
|
>>> np.ma.concatenate([a, b]) |
|
masked_array(data = [0 -- 2 2 3 4], |
|
mask = [False True False False False False], |
|
fill_value = 999999) |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core', 'inner', |
|
""" |
|
inner(a, b) |
|
|
|
Inner product of two arrays. |
|
|
|
Ordinary inner product of vectors for 1-D arrays (without complex |
|
conjugation), in higher dimensions a sum product over the last axes. |
|
|
|
Parameters |
|
---------- |
|
a, b : array_like |
|
If `a` and `b` are nonscalar, their last dimensions of must match. |
|
|
|
Returns |
|
------- |
|
out : ndarray |
|
`out.shape = a.shape[:-1] + b.shape[:-1]` |
|
|
|
Raises |
|
------ |
|
ValueError |
|
If the last dimension of `a` and `b` has different size. |
|
|
|
See Also |
|
-------- |
|
tensordot : Sum products over arbitrary axes. |
|
dot : Generalised matrix product, using second last dimension of `b`. |
|
einsum : Einstein summation convention. |
|
|
|
Notes |
|
----- |
|
For vectors (1-D arrays) it computes the ordinary inner-product:: |
|
|
|
np.inner(a, b) = sum(a[:]*b[:]) |
|
|
|
More generally, if `ndim(a) = r > 0` and `ndim(b) = s > 0`:: |
|
|
|
np.inner(a, b) = np.tensordot(a, b, axes=(-1,-1)) |
|
|
|
or explicitly:: |
|
|
|
np.inner(a, b)[i0,...,ir-1,j0,...,js-1] |
|
= sum(a[i0,...,ir-1,:]*b[j0,...,js-1,:]) |
|
|
|
In addition `a` or `b` may be scalars, in which case:: |
|
|
|
np.inner(a,b) = a*b |
|
|
|
Examples |
|
-------- |
|
Ordinary inner product for vectors: |
|
|
|
>>> a = np.array([1,2,3]) |
|
>>> b = np.array([0,1,0]) |
|
>>> np.inner(a, b) |
|
2 |
|
|
|
A multidimensional example: |
|
|
|
>>> a = np.arange(24).reshape((2,3,4)) |
|
>>> b = np.arange(4) |
|
>>> np.inner(a, b) |
|
array([[ 14, 38, 62], |
|
[ 86, 110, 134]]) |
|
|
|
An example where `b` is a scalar: |
|
|
|
>>> np.inner(np.eye(2), 7) |
|
array([[ 7., 0.], |
|
[ 0., 7.]]) |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core', 'fastCopyAndTranspose', |
|
"""_fastCopyAndTranspose(a)""") |
|
|
|
add_newdoc('numpy.core.multiarray', 'correlate', |
|
"""cross_correlate(a,v, mode=0)""") |
|
|
|
add_newdoc('numpy.core.multiarray', 'arange', |
|
""" |
|
arange([start,] stop[, step,], dtype=None) |
|
|
|
Return evenly spaced values within a given interval. |
|
|
|
Values are generated within the half-open interval ``[start, stop)`` |
|
(in other words, the interval including `start` but excluding `stop`). |
|
For integer arguments the function is equivalent to the Python built-in |
|
`range <http://docs.python.org/lib/built-in-funcs.html>`_ function, |
|
but returns an ndarray rather than a list. |
|
|
|
When using a non-integer step, such as 0.1, the results will often not |
|
be consistent. It is better to use ``linspace`` for these cases. |
|
|
|
Parameters |
|
---------- |
|
start : number, optional |
|
Start of interval. The interval includes this value. The default |
|
start value is 0. |
|
stop : number |
|
End of interval. The interval does not include this value, except |
|
in some cases where `step` is not an integer and floating point |
|
round-off affects the length of `out`. |
|
step : number, optional |
|
Spacing between values. For any output `out`, this is the distance |
|
between two adjacent values, ``out[i+1] - out[i]``. The default |
|
step size is 1. If `step` is specified, `start` must also be given. |
|
dtype : dtype |
|
The type of the output array. If `dtype` is not given, infer the data |
|
type from the other input arguments. |
|
|
|
Returns |
|
------- |
|
arange : ndarray |
|
Array of evenly spaced values. |
|
|
|
For floating point arguments, the length of the result is |
|
``ceil((stop - start)/step)``. Because of floating point overflow, |
|
this rule may result in the last element of `out` being greater |
|
than `stop`. |
|
|
|
See Also |
|
-------- |
|
linspace : Evenly spaced numbers with careful handling of endpoints. |
|
ogrid: Arrays of evenly spaced numbers in N-dimensions. |
|
mgrid: Grid-shaped arrays of evenly spaced numbers in N-dimensions. |
|
|
|
Examples |
|
-------- |
|
>>> np.arange(3) |
|
array([0, 1, 2]) |
|
>>> np.arange(3.0) |
|
array([ 0., 1., 2.]) |
|
>>> np.arange(3,7) |
|
array([3, 4, 5, 6]) |
|
>>> np.arange(3,7,2) |
|
array([3, 5]) |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core.multiarray', '_get_ndarray_c_version', |
|
"""_get_ndarray_c_version() |
|
|
|
Return the compile time NDARRAY_VERSION number. |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core.multiarray', '_reconstruct', |
|
"""_reconstruct(subtype, shape, dtype) |
|
|
|
Construct an empty array. Used by Pickles. |
|
|
|
""") |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'set_string_function', |
|
""" |
|
set_string_function(f, repr=1) |
|
|
|
Internal method to set a function to be used when pretty printing arrays. |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core.multiarray', 'set_numeric_ops', |
|
""" |
|
set_numeric_ops(op1=func1, op2=func2, ...) |
|
|
|
Set numerical operators for array objects. |
|
|
|
Parameters |
|
---------- |
|
op1, op2, ... : callable |
|
Each ``op = func`` pair describes an operator to be replaced. |
|
For example, ``add = lambda x, y: np.add(x, y) % 5`` would replace |
|
addition by modulus 5 addition. |
|
|
|
Returns |
|
------- |
|
saved_ops : list of callables |
|
A list of all operators, stored before making replacements. |
|
|
|
Notes |
|
----- |
|
.. WARNING:: |
|
Use with care! Incorrect usage may lead to memory errors. |
|
|
|
A function replacing an operator cannot make use of that operator. |
|
For example, when replacing add, you may not use ``+``. Instead, |
|
directly call ufuncs. |
|
|
|
Examples |
|
-------- |
|
>>> def add_mod5(x, y): |
|
... return np.add(x, y) % 5 |
|
... |
|
>>> old_funcs = np.set_numeric_ops(add=add_mod5) |
|
|
|
>>> x = np.arange(12).reshape((3, 4)) |
|
>>> x + x |
|
array([[0, 2, 4, 1], |
|
[3, 0, 2, 4], |
|
[1, 3, 0, 2]]) |
|
|
|
>>> ignore = np.set_numeric_ops(**old_funcs) # restore operators |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core.multiarray', 'where', |
|
""" |
|
where(condition, [x, y]) |
|
|
|
Return elements, either from `x` or `y`, depending on `condition`. |
|
|
|
If only `condition` is given, return ``condition.nonzero()``. |
|
|
|
Parameters |
|
---------- |
|
condition : array_like, bool |
|
When True, yield `x`, otherwise yield `y`. |
|
x, y : array_like, optional |
|
Values from which to choose. `x` and `y` need to have the same |
|
shape as `condition`. |
|
|
|
Returns |
|
------- |
|
out : ndarray or tuple of ndarrays |
|
If both `x` and `y` are specified, the output array contains |
|
elements of `x` where `condition` is True, and elements from |
|
`y` elsewhere. |
|
|
|
If only `condition` is given, return the tuple |
|
``condition.nonzero()``, the indices where `condition` is True. |
|
|
|
See Also |
|
-------- |
|
nonzero, choose |
|
|
|
Notes |
|
----- |
|
If `x` and `y` are given and input arrays are 1-D, `where` is |
|
equivalent to:: |
|
|
|
[xv if c else yv for (c,xv,yv) in zip(condition,x,y)] |
|
|
|
Examples |
|
-------- |
|
>>> np.where([[True, False], [True, True]], |
|
... [[1, 2], [3, 4]], |
|
... [[9, 8], [7, 6]]) |
|
array([[1, 8], |
|
[3, 4]]) |
|
|
|
>>> np.where([[0, 1], [1, 0]]) |
|
(array([0, 1]), array([1, 0])) |
|
|
|
>>> x = np.arange(9.).reshape(3, 3) |
|
>>> np.where( x > 5 ) |
|
(array([2, 2, 2]), array([0, 1, 2])) |
|
>>> x[np.where( x > 3.0 )] # Note: result is 1D. |
|
array([ 4., 5., 6., 7., 8.]) |
|
>>> np.where(x < 5, x, -1) # Note: broadcasting. |
|
array([[ 0., 1., 2.], |
|
[ 3., 4., -1.], |
|
[-1., -1., -1.]]) |
|
|
|
Find the indices of elements of `x` that are in `goodvalues`. |
|
|
|
>>> goodvalues = [3, 4, 7] |
|
>>> ix = np.in1d(x.ravel(), goodvalues).reshape(x.shape) |
|
>>> ix |
|
array([[False, False, False], |
|
[ True, True, False], |
|
[False, True, False]], dtype=bool) |
|
>>> np.where(ix) |
|
(array([1, 1, 2]), array([0, 1, 1])) |
|
|
|
""") |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'lexsort', |
|
""" |
|
lexsort(keys, axis=-1) |
|
|
|
Perform an indirect sort using a sequence of keys. |
|
|
|
Given multiple sorting keys, which can be interpreted as columns in a |
|
spreadsheet, lexsort returns an array of integer indices that describes |
|
the sort order by multiple columns. The last key in the sequence is used |
|
for the primary sort order, the second-to-last key for the secondary sort |
|
order, and so on. The keys argument must be a sequence of objects that |
|
can be converted to arrays of the same shape. If a 2D array is provided |
|
for the keys argument, it's rows are interpreted as the sorting keys and |
|
sorting is according to the last row, second last row etc. |
|
|
|
Parameters |
|
---------- |
|
keys : (k, N) array or tuple containing k (N,)-shaped sequences |
|
The `k` different "columns" to be sorted. The last column (or row if |
|
`keys` is a 2D array) is the primary sort key. |
|
axis : int, optional |
|
Axis to be indirectly sorted. By default, sort over the last axis. |
|
|
|
Returns |
|
------- |
|
indices : (N,) ndarray of ints |
|
Array of indices that sort the keys along the specified axis. |
|
|
|
See Also |
|
-------- |
|
argsort : Indirect sort. |
|
ndarray.sort : In-place sort. |
|
sort : Return a sorted copy of an array. |
|
|
|
Examples |
|
-------- |
|
Sort names: first by surname, then by name. |
|
|
|
>>> surnames = ('Hertz', 'Galilei', 'Hertz') |
|
>>> first_names = ('Heinrich', 'Galileo', 'Gustav') |
|
>>> ind = np.lexsort((first_names, surnames)) |
|
>>> ind |
|
array([1, 2, 0]) |
|
|
|
>>> [surnames[i] + ", " + first_names[i] for i in ind] |
|
['Galilei, Galileo', 'Hertz, Gustav', 'Hertz, Heinrich'] |
|
|
|
Sort two columns of numbers: |
|
|
|
>>> a = [1,5,1,4,3,4,4] # First column |
|
>>> b = [9,4,0,4,0,2,1] # Second column |
|
>>> ind = np.lexsort((b,a)) # Sort by a, then by b |
|
>>> print ind |
|
[2 0 4 6 5 3 1] |
|
|
|
>>> [(a[i],b[i]) for i in ind] |
|
[(1, 0), (1, 9), (3, 0), (4, 1), (4, 2), (4, 4), (5, 4)] |
|
|
|
Note that sorting is first according to the elements of ``a``. |
|
Secondary sorting is according to the elements of ``b``. |
|
|
|
A normal ``argsort`` would have yielded: |
|
|
|
>>> [(a[i],b[i]) for i in np.argsort(a)] |
|
[(1, 9), (1, 0), (3, 0), (4, 4), (4, 2), (4, 1), (5, 4)] |
|
|
|
Structured arrays are sorted lexically by ``argsort``: |
|
|
|
>>> x = np.array([(1,9), (5,4), (1,0), (4,4), (3,0), (4,2), (4,1)], |
|
... dtype=np.dtype([('x', int), ('y', int)])) |
|
|
|
>>> np.argsort(x) # or np.argsort(x, order=('x', 'y')) |
|
array([2, 0, 4, 6, 5, 3, 1]) |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core.multiarray', 'can_cast', |
|
""" |
|
can_cast(from, totype, casting = 'safe') |
|
|
|
Returns True if cast between data types can occur according to the |
|
casting rule. If from is a scalar or array scalar, also returns |
|
True if the scalar value can be cast without overflow or truncation |
|
to an integer. |
|
|
|
Parameters |
|
---------- |
|
from : dtype, dtype specifier, scalar, or array |
|
Data type, scalar, or array to cast from. |
|
totype : dtype or dtype specifier |
|
Data type to cast to. |
|
casting : {'no', 'equiv', 'safe', 'same_kind', 'unsafe'}, optional |
|
Controls what kind of data casting may occur. |
|
|
|
* 'no' means the data types should not be cast at all. |
|
* 'equiv' means only byte-order changes are allowed. |
|
* 'safe' means only casts which can preserve values are allowed. |
|
* 'same_kind' means only safe casts or casts within a kind, |
|
like float64 to float32, are allowed. |
|
* 'unsafe' means any data conversions may be done. |
|
|
|
Returns |
|
------- |
|
out : bool |
|
True if cast can occur according to the casting rule. |
|
|
|
Notes |
|
----- |
|
Starting in NumPy 1.9, can_cast function now returns False in 'safe' |
|
casting mode for integer/float dtype and string dtype if the string dtype |
|
length is not long enough to store the max integer/float value converted |
|
to a string. Previously can_cast in 'safe' mode returned True for |
|
integer/float dtype and a string dtype of any length. |
|
|
|
See also |
|
-------- |
|
dtype, result_type |
|
|
|
Examples |
|
-------- |
|
Basic examples |
|
|
|
>>> np.can_cast(np.int32, np.int64) |
|
True |
|
>>> np.can_cast(np.float64, np.complex) |
|
True |
|
>>> np.can_cast(np.complex, np.float) |
|
False |
|
|
|
>>> np.can_cast('i8', 'f8') |
|
True |
|
>>> np.can_cast('i8', 'f4') |
|
False |
|
>>> np.can_cast('i4', 'S4') |
|
False |
|
|
|
Casting scalars |
|
|
|
>>> np.can_cast(100, 'i1') |
|
True |
|
>>> np.can_cast(150, 'i1') |
|
False |
|
>>> np.can_cast(150, 'u1') |
|
True |
|
|
|
>>> np.can_cast(3.5e100, np.float32) |
|
False |
|
>>> np.can_cast(1000.0, np.float32) |
|
True |
|
|
|
Array scalar checks the value, array does not |
|
|
|
>>> np.can_cast(np.array(1000.0), np.float32) |
|
True |
|
>>> np.can_cast(np.array([1000.0]), np.float32) |
|
False |
|
|
|
Using the casting rules |
|
|
|
>>> np.can_cast('i8', 'i8', 'no') |
|
True |
|
>>> np.can_cast('<i8', '>i8', 'no') |
|
False |
|
|
|
>>> np.can_cast('<i8', '>i8', 'equiv') |
|
True |
|
>>> np.can_cast('<i4', '>i8', 'equiv') |
|
False |
|
|
|
>>> np.can_cast('<i4', '>i8', 'safe') |
|
True |
|
>>> np.can_cast('<i8', '>i4', 'safe') |
|
False |
|
|
|
>>> np.can_cast('<i8', '>i4', 'same_kind') |
|
True |
|
>>> np.can_cast('<i8', '>u4', 'same_kind') |
|
False |
|
|
|
>>> np.can_cast('<i8', '>u4', 'unsafe') |
|
True |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core.multiarray', 'promote_types', |
|
""" |
|
promote_types(type1, type2) |
|
|
|
Returns the data type with the smallest size and smallest scalar |
|
kind to which both ``type1`` and ``type2`` may be safely cast. |
|
The returned data type is always in native byte order. |
|
|
|
This function is symmetric and associative. |
|
|
|
Parameters |
|
---------- |
|
type1 : dtype or dtype specifier |
|
First data type. |
|
type2 : dtype or dtype specifier |
|
Second data type. |
|
|
|
Returns |
|
------- |
|
out : dtype |
|
The promoted data type. |
|
|
|
Notes |
|
----- |
|
.. versionadded:: 1.6.0 |
|
Starting in NumPy 1.9, promote_types function now returns a valid string |
|
length when given an integer or float dtype as one argument and a string |
|
dtype as another argument. Previously it always returned the input string |
|
dtype, even if it wasn't long enough to store the max integer/float value |
|
converted to a string. |
|
|
|
See Also |
|
-------- |
|
result_type, dtype, can_cast |
|
|
|
Examples |
|
-------- |
|
>>> np.promote_types('f4', 'f8') |
|
dtype('float64') |
|
|
|
>>> np.promote_types('i8', 'f4') |
|
dtype('float64') |
|
|
|
>>> np.promote_types('>i8', '<c8') |
|
dtype('complex128') |
|
|
|
>>> np.promote_types('i4', 'S8') |
|
dtype('S11') |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core.multiarray', 'min_scalar_type', |
|
""" |
|
min_scalar_type(a) |
|
|
|
For scalar ``a``, returns the data type with the smallest size |
|
and smallest scalar kind which can hold its value. For non-scalar |
|
array ``a``, returns the vector's dtype unmodified. |
|
|
|
Floating point values are not demoted to integers, |
|
and complex values are not demoted to floats. |
|
|
|
Parameters |
|
---------- |
|
a : scalar or array_like |
|
The value whose minimal data type is to be found. |
|
|
|
Returns |
|
------- |
|
out : dtype |
|
The minimal data type. |
|
|
|
Notes |
|
----- |
|
.. versionadded:: 1.6.0 |
|
|
|
See Also |
|
-------- |
|
result_type, promote_types, dtype, can_cast |
|
|
|
Examples |
|
-------- |
|
>>> np.min_scalar_type(10) |
|
dtype('uint8') |
|
|
|
>>> np.min_scalar_type(-260) |
|
dtype('int16') |
|
|
|
>>> np.min_scalar_type(3.1) |
|
dtype('float16') |
|
|
|
>>> np.min_scalar_type(1e50) |
|
dtype('float64') |
|
|
|
>>> np.min_scalar_type(np.arange(4,dtype='f8')) |
|
dtype('float64') |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core.multiarray', 'result_type', |
|
""" |
|
result_type(*arrays_and_dtypes) |
|
|
|
Returns the type that results from applying the NumPy |
|
type promotion rules to the arguments. |
|
|
|
Type promotion in NumPy works similarly to the rules in languages |
|
like C++, with some slight differences. When both scalars and |
|
arrays are used, the array's type takes precedence and the actual value |
|
of the scalar is taken into account. |
|
|
|
For example, calculating 3*a, where a is an array of 32-bit floats, |
|
intuitively should result in a 32-bit float output. If the 3 is a |
|
32-bit integer, the NumPy rules indicate it can't convert losslessly |
|
into a 32-bit float, so a 64-bit float should be the result type. |
|
By examining the value of the constant, '3', we see that it fits in |
|
an 8-bit integer, which can be cast losslessly into the 32-bit float. |
|
|
|
Parameters |
|
---------- |
|
arrays_and_dtypes : list of arrays and dtypes |
|
The operands of some operation whose result type is needed. |
|
|
|
Returns |
|
------- |
|
out : dtype |
|
The result type. |
|
|
|
See also |
|
-------- |
|
dtype, promote_types, min_scalar_type, can_cast |
|
|
|
Notes |
|
----- |
|
.. versionadded:: 1.6.0 |
|
|
|
The specific algorithm used is as follows. |
|
|
|
Categories are determined by first checking which of boolean, |
|
integer (int/uint), or floating point (float/complex) the maximum |
|
kind of all the arrays and the scalars are. |
|
|
|
If there are only scalars or the maximum category of the scalars |
|
is higher than the maximum category of the arrays, |
|
the data types are combined with :func:`promote_types` |
|
to produce the return value. |
|
|
|
Otherwise, `min_scalar_type` is called on each array, and |
|
the resulting data types are all combined with :func:`promote_types` |
|
to produce the return value. |
|
|
|
The set of int values is not a subset of the uint values for types |
|
with the same number of bits, something not reflected in |
|
:func:`min_scalar_type`, but handled as a special case in `result_type`. |
|
|
|
Examples |
|
-------- |
|
>>> np.result_type(3, np.arange(7, dtype='i1')) |
|
dtype('int8') |
|
|
|
>>> np.result_type('i4', 'c8') |
|
dtype('complex128') |
|
|
|
>>> np.result_type(3.0, -2) |
|
dtype('float64') |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core.multiarray', 'newbuffer', |
|
""" |
|
newbuffer(size) |
|
|
|
Return a new uninitialized buffer object. |
|
|
|
Parameters |
|
---------- |
|
size : int |
|
Size in bytes of returned buffer object. |
|
|
|
Returns |
|
------- |
|
newbuffer : buffer object |
|
Returned, uninitialized buffer object of `size` bytes. |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core.multiarray', 'getbuffer', |
|
""" |
|
getbuffer(obj [,offset[, size]]) |
|
|
|
Create a buffer object from the given object referencing a slice of |
|
length size starting at offset. |
|
|
|
Default is the entire buffer. A read-write buffer is attempted followed |
|
by a read-only buffer. |
|
|
|
Parameters |
|
---------- |
|
obj : object |
|
|
|
offset : int, optional |
|
|
|
size : int, optional |
|
|
|
Returns |
|
------- |
|
buffer_obj : buffer |
|
|
|
Examples |
|
-------- |
|
>>> buf = np.getbuffer(np.ones(5), 1, 3) |
|
>>> len(buf) |
|
3 |
|
>>> buf[0] |
|
'\\x00' |
|
>>> buf |
|
<read-write buffer for 0x8af1e70, size 3, offset 1 at 0x8ba4ec0> |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core', 'dot', |
|
""" |
|
dot(a, b, out=None) |
|
|
|
Dot product of two arrays. |
|
|
|
For 2-D arrays it is equivalent to matrix multiplication, and for 1-D |
|
arrays to inner product of vectors (without complex conjugation). For |
|
N dimensions it is a sum product over the last axis of `a` and |
|
the second-to-last of `b`:: |
|
|
|
dot(a, b)[i,j,k,m] = sum(a[i,j,:] * b[k,:,m]) |
|
|
|
Parameters |
|
---------- |
|
a : array_like |
|
First argument. |
|
b : array_like |
|
Second argument. |
|
out : ndarray, optional |
|
Output argument. This must have the exact kind that would be returned |
|
if it was not used. In particular, it must have the right type, must be |
|
C-contiguous, and its dtype must be the dtype that would be returned |
|
for `dot(a,b)`. This is a performance feature. Therefore, if these |
|
conditions are not met, an exception is raised, instead of attempting |
|
to be flexible. |
|
|
|
Returns |
|
------- |
|
output : ndarray |
|
Returns the dot product of `a` and `b`. If `a` and `b` are both |
|
scalars or both 1-D arrays then a scalar is returned; otherwise |
|
an array is returned. |
|
If `out` is given, then it is returned. |
|
|
|
Raises |
|
------ |
|
ValueError |
|
If the last dimension of `a` is not the same size as |
|
the second-to-last dimension of `b`. |
|
|
|
See Also |
|
-------- |
|
vdot : Complex-conjugating dot product. |
|
tensordot : Sum products over arbitrary axes. |
|
einsum : Einstein summation convention. |
|
|
|
Examples |
|
-------- |
|
>>> np.dot(3, 4) |
|
12 |
|
|
|
Neither argument is complex-conjugated: |
|
|
|
>>> np.dot([2j, 3j], [2j, 3j]) |
|
(-13+0j) |
|
|
|
For 2-D arrays it's the matrix product: |
|
|
|
>>> a = [[1, 0], [0, 1]] |
|
>>> b = [[4, 1], [2, 2]] |
|
>>> np.dot(a, b) |
|
array([[4, 1], |
|
[2, 2]]) |
|
|
|
>>> a = np.arange(3*4*5*6).reshape((3,4,5,6)) |
|
>>> b = np.arange(3*4*5*6)[::-1].reshape((5,4,6,3)) |
|
>>> np.dot(a, b)[2,3,2,1,2,2] |
|
499128 |
|
>>> sum(a[2,3,2,:] * b[1,2,:,2]) |
|
499128 |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core', 'einsum', |
|
""" |
|
einsum(subscripts, *operands, out=None, dtype=None, order='K', casting='safe') |
|
|
|
Evaluates the Einstein summation convention on the operands. |
|
|
|
Using the Einstein summation convention, many common multi-dimensional |
|
array operations can be represented in a simple fashion. This function |
|
provides a way compute such summations. The best way to understand this |
|
function is to try the examples below, which show how many common NumPy |
|
functions can be implemented as calls to `einsum`. |
|
|
|
Parameters |
|
---------- |
|
subscripts : str |
|
Specifies the subscripts for summation. |
|
operands : list of array_like |
|
These are the arrays for the operation. |
|
out : ndarray, optional |
|
If provided, the calculation is done into this array. |
|
dtype : data-type, optional |
|
If provided, forces the calculation to use the data type specified. |
|
Note that you may have to also give a more liberal `casting` |
|
parameter to allow the conversions. |
|
order : {'C', 'F', 'A', 'K'}, optional |
|
Controls the memory layout of the output. 'C' means it should |
|
be C contiguous. 'F' means it should be Fortran contiguous, |
|
'A' means it should be 'F' if the inputs are all 'F', 'C' otherwise. |
|
'K' means it should be as close to the layout as the inputs as |
|
is possible, including arbitrarily permuted axes. |
|
Default is 'K'. |
|
casting : {'no', 'equiv', 'safe', 'same_kind', 'unsafe'}, optional |
|
Controls what kind of data casting may occur. Setting this to |
|
'unsafe' is not recommended, as it can adversely affect accumulations. |
|
|
|
* 'no' means the data types should not be cast at all. |
|
* 'equiv' means only byte-order changes are allowed. |
|
* 'safe' means only casts which can preserve values are allowed. |
|
* 'same_kind' means only safe casts or casts within a kind, |
|
like float64 to float32, are allowed. |
|
* 'unsafe' means any data conversions may be done. |
|
|
|
Returns |
|
------- |
|
output : ndarray |
|
The calculation based on the Einstein summation convention. |
|
|
|
See Also |
|
-------- |
|
dot, inner, outer, tensordot |
|
|
|
Notes |
|
----- |
|
.. versionadded:: 1.6.0 |
|
|
|
The subscripts string is a comma-separated list of subscript labels, |
|
where each label refers to a dimension of the corresponding operand. |
|
Repeated subscripts labels in one operand take the diagonal. For example, |
|
``np.einsum('ii', a)`` is equivalent to ``np.trace(a)``. |
|
|
|
Whenever a label is repeated, it is summed, so ``np.einsum('i,i', a, b)`` |
|
is equivalent to ``np.inner(a,b)``. If a label appears only once, |
|
it is not summed, so ``np.einsum('i', a)`` produces a view of ``a`` |
|
with no changes. |
|
|
|
The order of labels in the output is by default alphabetical. This |
|
means that ``np.einsum('ij', a)`` doesn't affect a 2D array, while |
|
``np.einsum('ji', a)`` takes its transpose. |
|
|
|
The output can be controlled by specifying output subscript labels |
|
as well. This specifies the label order, and allows summing to |
|
be disallowed or forced when desired. The call ``np.einsum('i->', a)`` |
|
is like ``np.sum(a, axis=-1)``, and ``np.einsum('ii->i', a)`` |
|
is like ``np.diag(a)``. The difference is that `einsum` does not |
|
allow broadcasting by default. |
|
|
|
To enable and control broadcasting, use an ellipsis. Default |
|
NumPy-style broadcasting is done by adding an ellipsis |
|
to the left of each term, like ``np.einsum('...ii->...i', a)``. |
|
To take the trace along the first and last axes, |
|
you can do ``np.einsum('i...i', a)``, or to do a matrix-matrix |
|
product with the left-most indices instead of rightmost, you can do |
|
``np.einsum('ij...,jk...->ik...', a, b)``. |
|
|
|
When there is only one operand, no axes are summed, and no output |
|
parameter is provided, a view into the operand is returned instead |
|
of a new array. Thus, taking the diagonal as ``np.einsum('ii->i', a)`` |
|
produces a view. |
|
|
|
An alternative way to provide the subscripts and operands is as |
|
``einsum(op0, sublist0, op1, sublist1, ..., [sublistout])``. The examples |
|
below have corresponding `einsum` calls with the two parameter methods. |
|
|
|
Examples |
|
-------- |
|
>>> a = np.arange(25).reshape(5,5) |
|
>>> b = np.arange(5) |
|
>>> c = np.arange(6).reshape(2,3) |
|
|
|
>>> np.einsum('ii', a) |
|
60 |
|
>>> np.einsum(a, [0,0]) |
|
60 |
|
>>> np.trace(a) |
|
60 |
|
|
|
>>> np.einsum('ii->i', a) |
|
array([ 0, 6, 12, 18, 24]) |
|
>>> np.einsum(a, [0,0], [0]) |
|
array([ 0, 6, 12, 18, 24]) |
|
>>> np.diag(a) |
|
array([ 0, 6, 12, 18, 24]) |
|
|
|
>>> np.einsum('ij,j', a, b) |
|
array([ 30, 80, 130, 180, 230]) |
|
>>> np.einsum(a, [0,1], b, [1]) |
|
array([ 30, 80, 130, 180, 230]) |
|
>>> np.dot(a, b) |
|
array([ 30, 80, 130, 180, 230]) |
|
>>> np.einsum('...j,j', a, b) |
|
array([ 30, 80, 130, 180, 230]) |
|
|
|
>>> np.einsum('ji', c) |
|
array([[0, 3], |
|
[1, 4], |
|
[2, 5]]) |
|
>>> np.einsum(c, [1,0]) |
|
array([[0, 3], |
|
[1, 4], |
|
[2, 5]]) |
|
>>> c.T |
|
array([[0, 3], |
|
[1, 4], |
|
[2, 5]]) |
|
|
|
>>> np.einsum('..., ...', 3, c) |
|
array([[ 0, 3, 6], |
|
[ 9, 12, 15]]) |
|
>>> np.einsum(3, [Ellipsis], c, [Ellipsis]) |
|
array([[ 0, 3, 6], |
|
[ 9, 12, 15]]) |
|
>>> np.multiply(3, c) |
|
array([[ 0, 3, 6], |
|
[ 9, 12, 15]]) |
|
|
|
>>> np.einsum('i,i', b, b) |
|
30 |
|
>>> np.einsum(b, [0], b, [0]) |
|
30 |
|
>>> np.inner(b,b) |
|
30 |
|
|
|
>>> np.einsum('i,j', np.arange(2)+1, b) |
|
array([[0, 1, 2, 3, 4], |
|
[0, 2, 4, 6, 8]]) |
|
>>> np.einsum(np.arange(2)+1, [0], b, [1]) |
|
array([[0, 1, 2, 3, 4], |
|
[0, 2, 4, 6, 8]]) |
|
>>> np.outer(np.arange(2)+1, b) |
|
array([[0, 1, 2, 3, 4], |
|
[0, 2, 4, 6, 8]]) |
|
|
|
>>> np.einsum('i...->...', a) |
|
array([50, 55, 60, 65, 70]) |
|
>>> np.einsum(a, [0,Ellipsis], [Ellipsis]) |
|
array([50, 55, 60, 65, 70]) |
|
>>> np.sum(a, axis=0) |
|
array([50, 55, 60, 65, 70]) |
|
|
|
>>> a = np.arange(60.).reshape(3,4,5) |
|
>>> b = np.arange(24.).reshape(4,3,2) |
|
>>> np.einsum('ijk,jil->kl', a, b) |
|
array([[ 4400., 4730.], |
|
[ 4532., 4874.], |
|
[ 4664., 5018.], |
|
[ 4796., 5162.], |
|
[ 4928., 5306.]]) |
|
>>> np.einsum(a, [0,1,2], b, [1,0,3], [2,3]) |
|
array([[ 4400., 4730.], |
|
[ 4532., 4874.], |
|
[ 4664., 5018.], |
|
[ 4796., 5162.], |
|
[ 4928., 5306.]]) |
|
>>> np.tensordot(a,b, axes=([1,0],[0,1])) |
|
array([[ 4400., 4730.], |
|
[ 4532., 4874.], |
|
[ 4664., 5018.], |
|
[ 4796., 5162.], |
|
[ 4928., 5306.]]) |
|
|
|
>>> a = np.arange(6).reshape((3,2)) |
|
>>> b = np.arange(12).reshape((4,3)) |
|
>>> np.einsum('ki,jk->ij', a, b) |
|
array([[10, 28, 46, 64], |
|
[13, 40, 67, 94]]) |
|
>>> np.einsum('ki,...k->i...', a, b) |
|
array([[10, 28, 46, 64], |
|
[13, 40, 67, 94]]) |
|
>>> np.einsum('k...,jk', a, b) |
|
array([[10, 28, 46, 64], |
|
[13, 40, 67, 94]]) |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core', 'alterdot', |
|
""" |
|
Change `dot`, `vdot`, and `inner` to use accelerated BLAS functions. |
|
|
|
Typically, as a user of Numpy, you do not explicitly call this function. If |
|
Numpy is built with an accelerated BLAS, this function is automatically |
|
called when Numpy is imported. |
|
|
|
When Numpy is built with an accelerated BLAS like ATLAS, these functions |
|
are replaced to make use of the faster implementations. The faster |
|
implementations only affect float32, float64, complex64, and complex128 |
|
arrays. Furthermore, the BLAS API only includes matrix-matrix, |
|
matrix-vector, and vector-vector products. Products of arrays with larger |
|
dimensionalities use the built in functions and are not accelerated. |
|
|
|
See Also |
|
-------- |
|
restoredot : `restoredot` undoes the effects of `alterdot`. |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core', 'restoredot', |
|
""" |
|
Restore `dot`, `vdot`, and `innerproduct` to the default non-BLAS |
|
implementations. |
|
|
|
Typically, the user will only need to call this when troubleshooting and |
|
installation problem, reproducing the conditions of a build without an |
|
accelerated BLAS, or when being very careful about benchmarking linear |
|
algebra operations. |
|
|
|
See Also |
|
-------- |
|
alterdot : `restoredot` undoes the effects of `alterdot`. |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core', 'vdot', |
|
""" |
|
vdot(a, b) |
|
|
|
Return the dot product of two vectors. |
|
|
|
The vdot(`a`, `b`) function handles complex numbers differently than |
|
dot(`a`, `b`). If the first argument is complex the complex conjugate |
|
of the first argument is used for the calculation of the dot product. |
|
|
|
Note that `vdot` handles multidimensional arrays differently than `dot`: |
|
it does *not* perform a matrix product, but flattens input arguments |
|
to 1-D vectors first. Consequently, it should only be used for vectors. |
|
|
|
Parameters |
|
---------- |
|
a : array_like |
|
If `a` is complex the complex conjugate is taken before calculation |
|
of the dot product. |
|
b : array_like |
|
Second argument to the dot product. |
|
|
|
Returns |
|
------- |
|
output : ndarray |
|
Dot product of `a` and `b`. Can be an int, float, or |
|
complex depending on the types of `a` and `b`. |
|
|
|
See Also |
|
-------- |
|
dot : Return the dot product without using the complex conjugate of the |
|
first argument. |
|
|
|
Examples |
|
-------- |
|
>>> a = np.array([1+2j,3+4j]) |
|
>>> b = np.array([5+6j,7+8j]) |
|
>>> np.vdot(a, b) |
|
(70-8j) |
|
>>> np.vdot(b, a) |
|
(70+8j) |
|
|
|
Note that higher-dimensional arrays are flattened! |
|
|
|
>>> a = np.array([[1, 4], [5, 6]]) |
|
>>> b = np.array([[4, 1], [2, 2]]) |
|
>>> np.vdot(a, b) |
|
30 |
|
>>> np.vdot(b, a) |
|
30 |
|
>>> 1*4 + 4*1 + 5*2 + 6*2 |
|
30 |
|
|
|
""") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', |
|
""" |
|
ndarray(shape, dtype=float, buffer=None, offset=0, |
|
strides=None, order=None) |
|
|
|
An array object represents a multidimensional, homogeneous array |
|
of fixed-size items. An associated data-type object describes the |
|
format of each element in the array (its byte-order, how many bytes it |
|
occupies in memory, whether it is an integer, a floating point number, |
|
or something else, etc.) |
|
|
|
Arrays should be constructed using `array`, `zeros` or `empty` (refer |
|
to the See Also section below). The parameters given here refer to |
|
a low-level method (`ndarray(...)`) for instantiating an array. |
|
|
|
For more information, refer to the `numpy` module and examine the |
|
the methods and attributes of an array. |
|
|
|
Parameters |
|
---------- |
|
(for the __new__ method; see Notes below) |
|
|
|
shape : tuple of ints |
|
Shape of created array. |
|
dtype : data-type, optional |
|
Any object that can be interpreted as a numpy data type. |
|
buffer : object exposing buffer interface, optional |
|
Used to fill the array with data. |
|
offset : int, optional |
|
Offset of array data in buffer. |
|
strides : tuple of ints, optional |
|
Strides of data in memory. |
|
order : {'C', 'F'}, optional |
|
Row-major or column-major order. |
|
|
|
Attributes |
|
---------- |
|
T : ndarray |
|
Transpose of the array. |
|
data : buffer |
|
The array's elements, in memory. |
|
dtype : dtype object |
|
Describes the format of the elements in the array. |
|
flags : dict |
|
Dictionary containing information related to memory use, e.g., |
|
'C_CONTIGUOUS', 'OWNDATA', 'WRITEABLE', etc. |
|
flat : numpy.flatiter object |
|
Flattened version of the array as an iterator. The iterator |
|
allows assignments, e.g., ``x.flat = 3`` (See `ndarray.flat` for |
|
assignment examples; TODO). |
|
imag : ndarray |
|
Imaginary part of the array. |
|
real : ndarray |
|
Real part of the array. |
|
size : int |
|
Number of elements in the array. |
|
itemsize : int |
|
The memory use of each array element in bytes. |
|
nbytes : int |
|
The total number of bytes required to store the array data, |
|
i.e., ``itemsize * size``. |
|
ndim : int |
|
The array's number of dimensions. |
|
shape : tuple of ints |
|
Shape of the array. |
|
strides : tuple of ints |
|
The step-size required to move from one element to the next in |
|
memory. For example, a contiguous ``(3, 4)`` array of type |
|
``int16`` in C-order has strides ``(8, 2)``. This implies that |
|
to move from element to element in memory requires jumps of 2 bytes. |
|
To move from row-to-row, one needs to jump 8 bytes at a time |
|
(``2 * 4``). |
|
ctypes : ctypes object |
|
Class containing properties of the array needed for interaction |
|
with ctypes. |
|
base : ndarray |
|
If the array is a view into another array, that array is its `base` |
|
(unless that array is also a view). The `base` array is where the |
|
array data is actually stored. |
|
|
|
See Also |
|
-------- |
|
array : Construct an array. |
|
zeros : Create an array, each element of which is zero. |
|
empty : Create an array, but leave its allocated memory unchanged (i.e., |
|
it contains "garbage"). |
|
dtype : Create a data-type. |
|
|
|
Notes |
|
----- |
|
There are two modes of creating an array using ``__new__``: |
|
|
|
1. If `buffer` is None, then only `shape`, `dtype`, and `order` |
|
are used. |
|
2. If `buffer` is an object exposing the buffer interface, then |
|
all keywords are interpreted. |
|
|
|
No ``__init__`` method is needed because the array is fully initialized |
|
after the ``__new__`` method. |
|
|
|
Examples |
|
-------- |
|
These examples illustrate the low-level `ndarray` constructor. Refer |
|
to the `See Also` section above for easier ways of constructing an |
|
ndarray. |
|
|
|
First mode, `buffer` is None: |
|
|
|
>>> np.ndarray(shape=(2,2), dtype=float, order='F') |
|
array([[ -1.13698227e+002, 4.25087011e-303], |
|
[ 2.88528414e-306, 3.27025015e-309]]) #random |
|
|
|
Second mode: |
|
|
|
>>> np.ndarray((2,), buffer=np.array([1,2,3]), |
|
... offset=np.int_().itemsize, |
|
... dtype=int) # offset = 1*itemsize, i.e. skip first element |
|
array([2, 3]) |
|
|
|
""") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('__array_interface__', |
|
"""Array protocol: Python side.""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('__array_finalize__', |
|
"""None.""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('__array_priority__', |
|
"""Array priority.""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('__array_struct__', |
|
"""Array protocol: C-struct side.""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('_as_parameter_', |
|
"""Allow the array to be interpreted as a ctypes object by returning the |
|
data-memory location as an integer |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('base', |
|
""" |
|
Base object if memory is from some other object. |
|
|
|
Examples |
|
-------- |
|
The base of an array that owns its memory is None: |
|
|
|
>>> x = np.array([1,2,3,4]) |
|
>>> x.base is None |
|
True |
|
|
|
Slicing creates a view, whose memory is shared with x: |
|
|
|
>>> y = x[2:] |
|
>>> y.base is x |
|
True |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('ctypes', |
|
""" |
|
An object to simplify the interaction of the array with the ctypes |
|
module. |
|
|
|
This attribute creates an object that makes it easier to use arrays |
|
when calling shared libraries with the ctypes module. The returned |
|
object has, among others, data, shape, and strides attributes (see |
|
Notes below) which themselves return ctypes objects that can be used |
|
as arguments to a shared library. |
|
|
|
Parameters |
|
---------- |
|
None |
|
|
|
Returns |
|
------- |
|
c : Python object |
|
Possessing attributes data, shape, strides, etc. |
|
|
|
See Also |
|
-------- |
|
numpy.ctypeslib |
|
|
|
Notes |
|
----- |
|
Below are the public attributes of this object which were documented |
|
in "Guide to NumPy" (we have omitted undocumented public attributes, |
|
as well as documented private attributes): |
|
|
|
* data: A pointer to the memory area of the array as a Python integer. |
|
This memory area may contain data that is not aligned, or not in correct |
|
byte-order. The memory area may not even be writeable. The array |
|
flags and data-type of this array should be respected when passing this |
|
attribute to arbitrary C-code to avoid trouble that can include Python |
|
crashing. User Beware! The value of this attribute is exactly the same |
|
as self._array_interface_['data'][0]. |
|
|
|
* shape (c_intp*self.ndim): A ctypes array of length self.ndim where |
|
the basetype is the C-integer corresponding to dtype('p') on this |
|
platform. This base-type could be c_int, c_long, or c_longlong |
|
depending on the platform. The c_intp type is defined accordingly in |
|
numpy.ctypeslib. The ctypes array contains the shape of the underlying |
|
array. |
|
|
|
* strides (c_intp*self.ndim): A ctypes array of length self.ndim where |
|
the basetype is the same as for the shape attribute. This ctypes array |
|
contains the strides information from the underlying array. This strides |
|
information is important for showing how many bytes must be jumped to |
|
get to the next element in the array. |
|
|
|
* data_as(obj): Return the data pointer cast to a particular c-types object. |
|
For example, calling self._as_parameter_ is equivalent to |
|
self.data_as(ctypes.c_void_p). Perhaps you want to use the data as a |
|
pointer to a ctypes array of floating-point data: |
|
self.data_as(ctypes.POINTER(ctypes.c_double)). |
|
|
|
* shape_as(obj): Return the shape tuple as an array of some other c-types |
|
type. For example: self.shape_as(ctypes.c_short). |
|
|
|
* strides_as(obj): Return the strides tuple as an array of some other |
|
c-types type. For example: self.strides_as(ctypes.c_longlong). |
|
|
|
Be careful using the ctypes attribute - especially on temporary |
|
arrays or arrays constructed on the fly. For example, calling |
|
``(a+b).ctypes.data_as(ctypes.c_void_p)`` returns a pointer to memory |
|
that is invalid because the array created as (a+b) is deallocated |
|
before the next Python statement. You can avoid this problem using |
|
either ``c=a+b`` or ``ct=(a+b).ctypes``. In the latter case, ct will |
|
hold a reference to the array until ct is deleted or re-assigned. |
|
|
|
If the ctypes module is not available, then the ctypes attribute |
|
of array objects still returns something useful, but ctypes objects |
|
are not returned and errors may be raised instead. In particular, |
|
the object will still have the as parameter attribute which will |
|
return an integer equal to the data attribute. |
|
|
|
Examples |
|
-------- |
|
>>> import ctypes |
|
>>> x |
|
array([[0, 1], |
|
[2, 3]]) |
|
>>> x.ctypes.data |
|
30439712 |
|
>>> x.ctypes.data_as(ctypes.POINTER(ctypes.c_long)) |
|
<ctypes.LP_c_long object at 0x01F01300> |
|
>>> x.ctypes.data_as(ctypes.POINTER(ctypes.c_long)).contents |
|
c_long(0) |
|
>>> x.ctypes.data_as(ctypes.POINTER(ctypes.c_longlong)).contents |
|
c_longlong(4294967296L) |
|
>>> x.ctypes.shape |
|
<numpy.core._internal.c_long_Array_2 object at 0x01FFD580> |
|
>>> x.ctypes.shape_as(ctypes.c_long) |
|
<numpy.core._internal.c_long_Array_2 object at 0x01FCE620> |
|
>>> x.ctypes.strides |
|
<numpy.core._internal.c_long_Array_2 object at 0x01FCE620> |
|
>>> x.ctypes.strides_as(ctypes.c_longlong) |
|
<numpy.core._internal.c_longlong_Array_2 object at 0x01F01300> |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('data', |
|
"""Python buffer object pointing to the start of the array's data.""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('dtype', |
|
""" |
|
Data-type of the array's elements. |
|
|
|
Parameters |
|
---------- |
|
None |
|
|
|
Returns |
|
------- |
|
d : numpy dtype object |
|
|
|
See Also |
|
-------- |
|
numpy.dtype |
|
|
|
Examples |
|
-------- |
|
>>> x |
|
array([[0, 1], |
|
[2, 3]]) |
|
>>> x.dtype |
|
dtype('int32') |
|
>>> type(x.dtype) |
|
<type 'numpy.dtype'> |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('imag', |
|
""" |
|
The imaginary part of the array. |
|
|
|
Examples |
|
-------- |
|
>>> x = np.sqrt([1+0j, 0+1j]) |
|
>>> x.imag |
|
array([ 0. , 0.70710678]) |
|
>>> x.imag.dtype |
|
dtype('float64') |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('itemsize', |
|
""" |
|
Length of one array element in bytes. |
|
|
|
Examples |
|
-------- |
|
>>> x = np.array([1,2,3], dtype=np.float64) |
|
>>> x.itemsize |
|
8 |
|
>>> x = np.array([1,2,3], dtype=np.complex128) |
|
>>> x.itemsize |
|
16 |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('flags', |
|
""" |
|
Information about the memory layout of the array. |
|
|
|
Attributes |
|
---------- |
|
C_CONTIGUOUS (C) |
|
The data is in a single, C-style contiguous segment. |
|
F_CONTIGUOUS (F) |
|
The data is in a single, Fortran-style contiguous segment. |
|
OWNDATA (O) |
|
The array owns the memory it uses or borrows it from another object. |
|
WRITEABLE (W) |
|
The data area can be written to. Setting this to False locks |
|
the data, making it read-only. A view (slice, etc.) inherits WRITEABLE |
|
from its base array at creation time, but a view of a writeable |
|
array may be subsequently locked while the base array remains writeable. |
|
(The opposite is not true, in that a view of a locked array may not |
|
be made writeable. However, currently, locking a base object does not |
|
lock any views that already reference it, so under that circumstance it |
|
is possible to alter the contents of a locked array via a previously |
|
created writeable view onto it.) Attempting to change a non-writeable |
|
array raises a RuntimeError exception. |
|
ALIGNED (A) |
|
The data and all elements are aligned appropriately for the hardware. |
|
UPDATEIFCOPY (U) |
|
This array is a copy of some other array. When this array is |
|
deallocated, the base array will be updated with the contents of |
|
this array. |
|
FNC |
|
F_CONTIGUOUS and not C_CONTIGUOUS. |
|
FORC |
|
F_CONTIGUOUS or C_CONTIGUOUS (one-segment test). |
|
BEHAVED (B) |
|
ALIGNED and WRITEABLE. |
|
CARRAY (CA) |
|
BEHAVED and C_CONTIGUOUS. |
|
FARRAY (FA) |
|
BEHAVED and F_CONTIGUOUS and not C_CONTIGUOUS. |
|
|
|
Notes |
|
----- |
|
The `flags` object can be accessed dictionary-like (as in ``a.flags['WRITEABLE']``), |
|
or by using lowercased attribute names (as in ``a.flags.writeable``). Short flag |
|
names are only supported in dictionary access. |
|
|
|
Only the UPDATEIFCOPY, WRITEABLE, and ALIGNED flags can be changed by |
|
the user, via direct assignment to the attribute or dictionary entry, |
|
or by calling `ndarray.setflags`. |
|
|
|
The array flags cannot be set arbitrarily: |
|
|
|
- UPDATEIFCOPY can only be set ``False``. |
|
- ALIGNED can only be set ``True`` if the data is truly aligned. |
|
- WRITEABLE can only be set ``True`` if the array owns its own memory |
|
or the ultimate owner of the memory exposes a writeable buffer |
|
interface or is a string. |
|
|
|
Arrays can be both C-style and Fortran-style contiguous simultaneously. |
|
This is clear for 1-dimensional arrays, but can also be true for higher |
|
dimensional arrays. |
|
|
|
Even for contiguous arrays a stride for a given dimension |
|
``arr.strides[dim]`` may be *arbitrary* if ``arr.shape[dim] == 1`` |
|
or the array has no elements. |
|
It does *not* generally hold that ``self.strides[-1] == self.itemsize`` |
|
for C-style contiguous arrays or ``self.strides[0] == self.itemsize`` for |
|
Fortran-style contiguous arrays is true. |
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('flat', |
|
""" |
|
A 1-D iterator over the array. |
|
|
|
This is a `numpy.flatiter` instance, which acts similarly to, but is not |
|
a subclass of, Python's built-in iterator object. |
|
|
|
See Also |
|
-------- |
|
flatten : Return a copy of the array collapsed into one dimension. |
|
|
|
flatiter |
|
|
|
Examples |
|
-------- |
|
>>> x = np.arange(1, 7).reshape(2, 3) |
|
>>> x |
|
array([[1, 2, 3], |
|
[4, 5, 6]]) |
|
>>> x.flat[3] |
|
4 |
|
>>> x.T |
|
array([[1, 4], |
|
[2, 5], |
|
[3, 6]]) |
|
>>> x.T.flat[3] |
|
5 |
|
>>> type(x.flat) |
|
<type 'numpy.flatiter'> |
|
|
|
An assignment example: |
|
|
|
>>> x.flat = 3; x |
|
array([[3, 3, 3], |
|
[3, 3, 3]]) |
|
>>> x.flat[[1,4]] = 1; x |
|
array([[3, 1, 3], |
|
[3, 1, 3]]) |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('nbytes', |
|
""" |
|
Total bytes consumed by the elements of the array. |
|
|
|
Notes |
|
----- |
|
Does not include memory consumed by non-element attributes of the |
|
array object. |
|
|
|
Examples |
|
-------- |
|
>>> x = np.zeros((3,5,2), dtype=np.complex128) |
|
>>> x.nbytes |
|
480 |
|
>>> np.prod(x.shape) * x.itemsize |
|
480 |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('ndim', |
|
""" |
|
Number of array dimensions. |
|
|
|
Examples |
|
-------- |
|
>>> x = np.array([1, 2, 3]) |
|
>>> x.ndim |
|
1 |
|
>>> y = np.zeros((2, 3, 4)) |
|
>>> y.ndim |
|
3 |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('real', |
|
""" |
|
The real part of the array. |
|
|
|
Examples |
|
-------- |
|
>>> x = np.sqrt([1+0j, 0+1j]) |
|
>>> x.real |
|
array([ 1. , 0.70710678]) |
|
>>> x.real.dtype |
|
dtype('float64') |
|
|
|
See Also |
|
-------- |
|
numpy.real : equivalent function |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('shape', |
|
""" |
|
Tuple of array dimensions. |
|
|
|
Notes |
|
----- |
|
May be used to "reshape" the array, as long as this would not |
|
require a change in the total number of elements |
|
|
|
Examples |
|
-------- |
|
>>> x = np.array([1, 2, 3, 4]) |
|
>>> x.shape |
|
(4,) |
|
>>> y = np.zeros((2, 3, 4)) |
|
>>> y.shape |
|
(2, 3, 4) |
|
>>> y.shape = (3, 8) |
|
>>> y |
|
array([[ 0., 0., 0., 0., 0., 0., 0., 0.], |
|
[ 0., 0., 0., 0., 0., 0., 0., 0.], |
|
[ 0., 0., 0., 0., 0., 0., 0., 0.]]) |
|
>>> y.shape = (3, 6) |
|
Traceback (most recent call last): |
|
File "<stdin>", line 1, in <module> |
|
ValueError: total size of new array must be unchanged |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('size', |
|
""" |
|
Number of elements in the array. |
|
|
|
Equivalent to ``np.prod(a.shape)``, i.e., the product of the array's |
|
dimensions. |
|
|
|
Examples |
|
-------- |
|
>>> x = np.zeros((3, 5, 2), dtype=np.complex128) |
|
>>> x.size |
|
30 |
|
>>> np.prod(x.shape) |
|
30 |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('strides', |
|
""" |
|
Tuple of bytes to step in each dimension when traversing an array. |
|
|
|
The byte offset of element ``(i[0], i[1], ..., i[n])`` in an array `a` |
|
is:: |
|
|
|
offset = sum(np.array(i) * a.strides) |
|
|
|
A more detailed explanation of strides can be found in the |
|
"ndarray.rst" file in the NumPy reference guide. |
|
|
|
Notes |
|
----- |
|
Imagine an array of 32-bit integers (each 4 bytes):: |
|
|
|
x = np.array([[0, 1, 2, 3, 4], |
|
[5, 6, 7, 8, 9]], dtype=np.int32) |
|
|
|
This array is stored in memory as 40 bytes, one after the other |
|
(known as a contiguous block of memory). The strides of an array tell |
|
us how many bytes we have to skip in memory to move to the next position |
|
along a certain axis. For example, we have to skip 4 bytes (1 value) to |
|
move to the next column, but 20 bytes (5 values) to get to the same |
|
position in the next row. As such, the strides for the array `x` will be |
|
``(20, 4)``. |
|
|
|
See Also |
|
-------- |
|
numpy.lib.stride_tricks.as_strided |
|
|
|
Examples |
|
-------- |
|
>>> y = np.reshape(np.arange(2*3*4), (2,3,4)) |
|
>>> y |
|
array([[[ 0, 1, 2, 3], |
|
[ 4, 5, 6, 7], |
|
[ 8, 9, 10, 11]], |
|
[[12, 13, 14, 15], |
|
[16, 17, 18, 19], |
|
[20, 21, 22, 23]]]) |
|
>>> y.strides |
|
(48, 16, 4) |
|
>>> y[1,1,1] |
|
17 |
|
>>> offset=sum(y.strides * np.array((1,1,1))) |
|
>>> offset/y.itemsize |
|
17 |
|
|
|
>>> x = np.reshape(np.arange(5*6*7*8), (5,6,7,8)).transpose(2,3,1,0) |
|
>>> x.strides |
|
(32, 4, 224, 1344) |
|
>>> i = np.array([3,5,2,2]) |
|
>>> offset = sum(i * x.strides) |
|
>>> x[3,5,2,2] |
|
813 |
|
>>> offset / x.itemsize |
|
813 |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('T', |
|
""" |
|
Same as self.transpose(), except that self is returned if |
|
self.ndim < 2. |
|
|
|
Examples |
|
-------- |
|
>>> x = np.array([[1.,2.],[3.,4.]]) |
|
>>> x |
|
array([[ 1., 2.], |
|
[ 3., 4.]]) |
|
>>> x.T |
|
array([[ 1., 3.], |
|
[ 2., 4.]]) |
|
>>> x = np.array([1.,2.,3.,4.]) |
|
>>> x |
|
array([ 1., 2., 3., 4.]) |
|
>>> x.T |
|
array([ 1., 2., 3., 4.]) |
|
|
|
""")) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('__array__', |
|
""" a.__array__(|dtype) -> reference if type unchanged, copy otherwise. |
|
|
|
Returns either a new reference to self if dtype is not given or a new array |
|
of provided data type if dtype is different from the current dtype of the |
|
array. |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('__array_prepare__', |
|
"""a.__array_prepare__(obj) -> Object of same type as ndarray object obj. |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('__array_wrap__', |
|
"""a.__array_wrap__(obj) -> Object of same type as ndarray object a. |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('__copy__', |
|
"""a.__copy__([order]) |
|
|
|
Return a copy of the array. |
|
|
|
Parameters |
|
---------- |
|
order : {'C', 'F', 'A'}, optional |
|
If order is 'C' (False) then the result is contiguous (default). |
|
If order is 'Fortran' (True) then the result has fortran order. |
|
If order is 'Any' (None) then the result has fortran order |
|
only if the array already is in fortran order. |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('__deepcopy__', |
|
"""a.__deepcopy__() -> Deep copy of array. |
|
|
|
Used if copy.deepcopy is called on an array. |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('__reduce__', |
|
"""a.__reduce__() |
|
|
|
For pickling. |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('__setstate__', |
|
"""a.__setstate__(version, shape, dtype, isfortran, rawdata) |
|
|
|
For unpickling. |
|
|
|
Parameters |
|
---------- |
|
version : int |
|
optional pickle version. If omitted defaults to 0. |
|
shape : tuple |
|
dtype : data-type |
|
isFortran : bool |
|
rawdata : string or list |
|
a binary string with the data (or a list if 'a' is an object array) |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('all', |
|
""" |
|
a.all(axis=None, out=None) |
|
|
|
Returns True if all elements evaluate to True. |
|
|
|
Refer to `numpy.all` for full documentation. |
|
|
|
See Also |
|
-------- |
|
numpy.all : equivalent function |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('any', |
|
""" |
|
a.any(axis=None, out=None) |
|
|
|
Returns True if any of the elements of `a` evaluate to True. |
|
|
|
Refer to `numpy.any` for full documentation. |
|
|
|
See Also |
|
-------- |
|
numpy.any : equivalent function |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('argmax', |
|
""" |
|
a.argmax(axis=None, out=None) |
|
|
|
Return indices of the maximum values along the given axis. |
|
|
|
Refer to `numpy.argmax` for full documentation. |
|
|
|
See Also |
|
-------- |
|
numpy.argmax : equivalent function |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('argmin', |
|
""" |
|
a.argmin(axis=None, out=None) |
|
|
|
Return indices of the minimum values along the given axis of `a`. |
|
|
|
Refer to `numpy.argmin` for detailed documentation. |
|
|
|
See Also |
|
-------- |
|
numpy.argmin : equivalent function |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('argsort', |
|
""" |
|
a.argsort(axis=-1, kind='quicksort', order=None) |
|
|
|
Returns the indices that would sort this array. |
|
|
|
Refer to `numpy.argsort` for full documentation. |
|
|
|
See Also |
|
-------- |
|
numpy.argsort : equivalent function |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('argpartition', |
|
""" |
|
a.argpartition(kth, axis=-1, kind='introselect', order=None) |
|
|
|
Returns the indices that would partition this array. |
|
|
|
Refer to `numpy.argpartition` for full documentation. |
|
|
|
.. versionadded:: 1.8.0 |
|
|
|
See Also |
|
-------- |
|
numpy.argpartition : equivalent function |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('astype', |
|
""" |
|
a.astype(dtype, order='K', casting='unsafe', subok=True, copy=True) |
|
|
|
Copy of the array, cast to a specified type. |
|
|
|
Parameters |
|
---------- |
|
dtype : str or dtype |
|
Typecode or data-type to which the array is cast. |
|
order : {'C', 'F', 'A', 'K'}, optional |
|
Controls the memory layout order of the result. |
|
'C' means C order, 'F' means Fortran order, 'A' |
|
means 'F' order if all the arrays are Fortran contiguous, |
|
'C' order otherwise, and 'K' means as close to the |
|
order the array elements appear in memory as possible. |
|
Default is 'K'. |
|
casting : {'no', 'equiv', 'safe', 'same_kind', 'unsafe'}, optional |
|
Controls what kind of data casting may occur. Defaults to 'unsafe' |
|
for backwards compatibility. |
|
|
|
* 'no' means the data types should not be cast at all. |
|
* 'equiv' means only byte-order changes are allowed. |
|
* 'safe' means only casts which can preserve values are allowed. |
|
* 'same_kind' means only safe casts or casts within a kind, |
|
like float64 to float32, are allowed. |
|
* 'unsafe' means any data conversions may be done. |
|
subok : bool, optional |
|
If True, then sub-classes will be passed-through (default), otherwise |
|
the returned array will be forced to be a base-class array. |
|
copy : bool, optional |
|
By default, astype always returns a newly allocated array. If this |
|
is set to false, and the `dtype`, `order`, and `subok` |
|
requirements are satisfied, the input array is returned instead |
|
of a copy. |
|
|
|
Returns |
|
------- |
|
arr_t : ndarray |
|
Unless `copy` is False and the other conditions for returning the input |
|
array are satisfied (see description for `copy` input paramter), `arr_t` |
|
is a new array of the same shape as the input array, with dtype, order |
|
given by `dtype`, `order`. |
|
|
|
Notes |
|
----- |
|
Starting in NumPy 1.9, astype method now returns an error if the string |
|
dtype to cast to is not long enough in 'safe' casting mode to hold the max |
|
value of integer/float array that is being casted. Previously the casting |
|
was allowed even if the result was truncated. |
|
|
|
Raises |
|
------ |
|
ComplexWarning |
|
When casting from complex to float or int. To avoid this, |
|
one should use ``a.real.astype(t)``. |
|
|
|
Examples |
|
-------- |
|
>>> x = np.array([1, 2, 2.5]) |
|
>>> x |
|
array([ 1. , 2. , 2.5]) |
|
|
|
>>> x.astype(int) |
|
array([1, 2, 2]) |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('byteswap', |
|
""" |
|
a.byteswap(inplace) |
|
|
|
Swap the bytes of the array elements |
|
|
|
Toggle between low-endian and big-endian data representation by |
|
returning a byteswapped array, optionally swapped in-place. |
|
|
|
Parameters |
|
---------- |
|
inplace : bool, optional |
|
If ``True``, swap bytes in-place, default is ``False``. |
|
|
|
Returns |
|
------- |
|
out : ndarray |
|
The byteswapped array. If `inplace` is ``True``, this is |
|
a view to self. |
|
|
|
Examples |
|
-------- |
|
>>> A = np.array([1, 256, 8755], dtype=np.int16) |
|
>>> map(hex, A) |
|
['0x1', '0x100', '0x2233'] |
|
>>> A.byteswap(True) |
|
array([ 256, 1, 13090], dtype=int16) |
|
>>> map(hex, A) |
|
['0x100', '0x1', '0x3322'] |
|
|
|
Arrays of strings are not swapped |
|
|
|
>>> A = np.array(['ceg', 'fac']) |
|
>>> A.byteswap() |
|
array(['ceg', 'fac'], |
|
dtype='|S3') |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('choose', |
|
""" |
|
a.choose(choices, out=None, mode='raise') |
|
|
|
Use an index array to construct a new array from a set of choices. |
|
|
|
Refer to `numpy.choose` for full documentation. |
|
|
|
See Also |
|
-------- |
|
numpy.choose : equivalent function |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('clip', |
|
""" |
|
a.clip(a_min, a_max, out=None) |
|
|
|
Return an array whose values are limited to ``[a_min, a_max]``. |
|
|
|
Refer to `numpy.clip` for full documentation. |
|
|
|
See Also |
|
-------- |
|
numpy.clip : equivalent function |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('compress', |
|
""" |
|
a.compress(condition, axis=None, out=None) |
|
|
|
Return selected slices of this array along given axis. |
|
|
|
Refer to `numpy.compress` for full documentation. |
|
|
|
See Also |
|
-------- |
|
numpy.compress : equivalent function |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('conj', |
|
""" |
|
a.conj() |
|
|
|
Complex-conjugate all elements. |
|
|
|
Refer to `numpy.conjugate` for full documentation. |
|
|
|
See Also |
|
-------- |
|
numpy.conjugate : equivalent function |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('conjugate', |
|
""" |
|
a.conjugate() |
|
|
|
Return the complex conjugate, element-wise. |
|
|
|
Refer to `numpy.conjugate` for full documentation. |
|
|
|
See Also |
|
-------- |
|
numpy.conjugate : equivalent function |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('copy', |
|
""" |
|
a.copy(order='C') |
|
|
|
Return a copy of the array. |
|
|
|
Parameters |
|
---------- |
|
order : {'C', 'F', 'A', 'K'}, optional |
|
Controls the memory layout of the copy. 'C' means C-order, |
|
'F' means F-order, 'A' means 'F' if `a` is Fortran contiguous, |
|
'C' otherwise. 'K' means match the layout of `a` as closely |
|
as possible. (Note that this function and :func:numpy.copy are very |
|
similar, but have different default values for their order= |
|
arguments.) |
|
|
|
See also |
|
-------- |
|
numpy.copy |
|
numpy.copyto |
|
|
|
Examples |
|
-------- |
|
>>> x = np.array([[1,2,3],[4,5,6]], order='F') |
|
|
|
>>> y = x.copy() |
|
|
|
>>> x.fill(0) |
|
|
|
>>> x |
|
array([[0, 0, 0], |
|
[0, 0, 0]]) |
|
|
|
>>> y |
|
array([[1, 2, 3], |
|
[4, 5, 6]]) |
|
|
|
>>> y.flags['C_CONTIGUOUS'] |
|
True |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('cumprod', |
|
""" |
|
a.cumprod(axis=None, dtype=None, out=None) |
|
|
|
Return the cumulative product of the elements along the given axis. |
|
|
|
Refer to `numpy.cumprod` for full documentation. |
|
|
|
See Also |
|
-------- |
|
numpy.cumprod : equivalent function |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('cumsum', |
|
""" |
|
a.cumsum(axis=None, dtype=None, out=None) |
|
|
|
Return the cumulative sum of the elements along the given axis. |
|
|
|
Refer to `numpy.cumsum` for full documentation. |
|
|
|
See Also |
|
-------- |
|
numpy.cumsum : equivalent function |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('diagonal', |
|
""" |
|
a.diagonal(offset=0, axis1=0, axis2=1) |
|
|
|
Return specified diagonals. In NumPy 1.9 the returned array is a |
|
read-only view instead of a copy as in previous NumPy versions. In |
|
NumPy 1.10 the read-only restriction will be removed. |
|
|
|
Refer to :func:`numpy.diagonal` for full documentation. |
|
|
|
See Also |
|
-------- |
|
numpy.diagonal : equivalent function |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('dot', |
|
""" |
|
a.dot(b, out=None) |
|
|
|
Dot product of two arrays. |
|
|
|
Refer to `numpy.dot` for full documentation. |
|
|
|
See Also |
|
-------- |
|
numpy.dot : equivalent function |
|
|
|
Examples |
|
-------- |
|
>>> a = np.eye(2) |
|
>>> b = np.ones((2, 2)) * 2 |
|
>>> a.dot(b) |
|
array([[ 2., 2.], |
|
[ 2., 2.]]) |
|
|
|
This array method can be conveniently chained: |
|
|
|
>>> a.dot(b).dot(b) |
|
array([[ 8., 8.], |
|
[ 8., 8.]]) |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('dump', |
|
"""a.dump(file) |
|
|
|
Dump a pickle of the array to the specified file. |
|
The array can be read back with pickle.load or numpy.load. |
|
|
|
Parameters |
|
---------- |
|
file : str |
|
A string naming the dump file. |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('dumps', |
|
""" |
|
a.dumps() |
|
|
|
Returns the pickle of the array as a string. |
|
pickle.loads or numpy.loads will convert the string back to an array. |
|
|
|
Parameters |
|
---------- |
|
None |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('fill', |
|
""" |
|
a.fill(value) |
|
|
|
Fill the array with a scalar value. |
|
|
|
Parameters |
|
---------- |
|
value : scalar |
|
All elements of `a` will be assigned this value. |
|
|
|
Examples |
|
-------- |
|
>>> a = np.array([1, 2]) |
|
>>> a.fill(0) |
|
>>> a |
|
array([0, 0]) |
|
>>> a = np.empty(2) |
|
>>> a.fill(1) |
|
>>> a |
|
array([ 1., 1.]) |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('flatten', |
|
""" |
|
a.flatten(order='C') |
|
|
|
Return a copy of the array collapsed into one dimension. |
|
|
|
Parameters |
|
---------- |
|
order : {'C', 'F', 'A'}, optional |
|
Whether to flatten in C (row-major), Fortran (column-major) order, |
|
or preserve the C/Fortran ordering from `a`. |
|
The default is 'C'. |
|
|
|
Returns |
|
------- |
|
y : ndarray |
|
A copy of the input array, flattened to one dimension. |
|
|
|
See Also |
|
-------- |
|
ravel : Return a flattened array. |
|
flat : A 1-D flat iterator over the array. |
|
|
|
Examples |
|
-------- |
|
>>> a = np.array([[1,2], [3,4]]) |
|
>>> a.flatten() |
|
array([1, 2, 3, 4]) |
|
>>> a.flatten('F') |
|
array([1, 3, 2, 4]) |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('getfield', |
|
""" |
|
a.getfield(dtype, offset=0) |
|
|
|
Returns a field of the given array as a certain type. |
|
|
|
A field is a view of the array data with a given data-type. The values in |
|
the view are determined by the given type and the offset into the current |
|
array in bytes. The offset needs to be such that the view dtype fits in the |
|
array dtype; for example an array of dtype complex128 has 16-byte elements. |
|
If taking a view with a 32-bit integer (4 bytes), the offset needs to be |
|
between 0 and 12 bytes. |
|
|
|
Parameters |
|
---------- |
|
dtype : str or dtype |
|
The data type of the view. The dtype size of the view can not be larger |
|
than that of the array itself. |
|
offset : int |
|
Number of bytes to skip before beginning the element view. |
|
|
|
Examples |
|
-------- |
|
>>> x = np.diag([1.+1.j]*2) |
|
>>> x[1, 1] = 2 + 4.j |
|
>>> x |
|
array([[ 1.+1.j, 0.+0.j], |
|
[ 0.+0.j, 2.+4.j]]) |
|
>>> x.getfield(np.float64) |
|
array([[ 1., 0.], |
|
[ 0., 2.]]) |
|
|
|
By choosing an offset of 8 bytes we can select the complex part of the |
|
array for our view: |
|
|
|
>>> x.getfield(np.float64, offset=8) |
|
array([[ 1., 0.], |
|
[ 0., 4.]]) |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('item', |
|
""" |
|
a.item(*args) |
|
|
|
Copy an element of an array to a standard Python scalar and return it. |
|
|
|
Parameters |
|
---------- |
|
\\*args : Arguments (variable number and type) |
|
|
|
* none: in this case, the method only works for arrays |
|
with one element (`a.size == 1`), which element is |
|
copied into a standard Python scalar object and returned. |
|
|
|
* int_type: this argument is interpreted as a flat index into |
|
the array, specifying which element to copy and return. |
|
|
|
* tuple of int_types: functions as does a single int_type argument, |
|
except that the argument is interpreted as an nd-index into the |
|
array. |
|
|
|
Returns |
|
------- |
|
z : Standard Python scalar object |
|
A copy of the specified element of the array as a suitable |
|
Python scalar |
|
|
|
Notes |
|
----- |
|
When the data type of `a` is longdouble or clongdouble, item() returns |
|
a scalar array object because there is no available Python scalar that |
|
would not lose information. Void arrays return a buffer object for item(), |
|
unless fields are defined, in which case a tuple is returned. |
|
|
|
`item` is very similar to a[args], except, instead of an array scalar, |
|
a standard Python scalar is returned. This can be useful for speeding up |
|
access to elements of the array and doing arithmetic on elements of the |
|
array using Python's optimized math. |
|
|
|
Examples |
|
-------- |
|
>>> x = np.random.randint(9, size=(3, 3)) |
|
>>> x |
|
array([[3, 1, 7], |
|
[2, 8, 3], |
|
[8, 5, 3]]) |
|
>>> x.item(3) |
|
2 |
|
>>> x.item(7) |
|
5 |
|
>>> x.item((0, 1)) |
|
1 |
|
>>> x.item((2, 2)) |
|
3 |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('itemset', |
|
""" |
|
a.itemset(*args) |
|
|
|
Insert scalar into an array (scalar is cast to array's dtype, if possible) |
|
|
|
There must be at least 1 argument, and define the last argument |
|
as *item*. Then, ``a.itemset(*args)`` is equivalent to but faster |
|
than ``a[args] = item``. The item should be a scalar value and `args` |
|
must select a single item in the array `a`. |
|
|
|
Parameters |
|
---------- |
|
\*args : Arguments |
|
If one argument: a scalar, only used in case `a` is of size 1. |
|
If two arguments: the last argument is the value to be set |
|
and must be a scalar, the first argument specifies a single array |
|
element location. It is either an int or a tuple. |
|
|
|
Notes |
|
----- |
|
Compared to indexing syntax, `itemset` provides some speed increase |
|
for placing a scalar into a particular location in an `ndarray`, |
|
if you must do this. However, generally this is discouraged: |
|
among other problems, it complicates the appearance of the code. |
|
Also, when using `itemset` (and `item`) inside a loop, be sure |
|
to assign the methods to a local variable to avoid the attribute |
|
look-up at each loop iteration. |
|
|
|
Examples |
|
-------- |
|
>>> x = np.random.randint(9, size=(3, 3)) |
|
>>> x |
|
array([[3, 1, 7], |
|
[2, 8, 3], |
|
[8, 5, 3]]) |
|
>>> x.itemset(4, 0) |
|
>>> x.itemset((2, 2), 9) |
|
>>> x |
|
array([[3, 1, 7], |
|
[2, 0, 3], |
|
[8, 5, 9]]) |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('setasflat', |
|
""" |
|
a.setasflat(arr) |
|
|
|
Equivalent to a.flat = arr.flat, but is generally more efficient. |
|
This function does not check for overlap, so if ``arr`` and ``a`` |
|
are viewing the same data with different strides, the results will |
|
be unpredictable. |
|
|
|
Parameters |
|
---------- |
|
arr : array_like |
|
The array to copy into a. |
|
|
|
Examples |
|
-------- |
|
>>> a = np.arange(2*4).reshape(2,4)[:,:-1]; a |
|
array([[0, 1, 2], |
|
[4, 5, 6]]) |
|
>>> b = np.arange(3*3, dtype='f4').reshape(3,3).T[::-1,:-1]; b |
|
array([[ 2., 5.], |
|
[ 1., 4.], |
|
[ 0., 3.]], dtype=float32) |
|
>>> a.setasflat(b) |
|
>>> a |
|
array([[2, 5, 1], |
|
[4, 0, 3]]) |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('max', |
|
""" |
|
a.max(axis=None, out=None) |
|
|
|
Return the maximum along a given axis. |
|
|
|
Refer to `numpy.amax` for full documentation. |
|
|
|
See Also |
|
-------- |
|
numpy.amax : equivalent function |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('mean', |
|
""" |
|
a.mean(axis=None, dtype=None, out=None) |
|
|
|
Returns the average of the array elements along given axis. |
|
|
|
Refer to `numpy.mean` for full documentation. |
|
|
|
See Also |
|
-------- |
|
numpy.mean : equivalent function |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('min', |
|
""" |
|
a.min(axis=None, out=None) |
|
|
|
Return the minimum along a given axis. |
|
|
|
Refer to `numpy.amin` for full documentation. |
|
|
|
See Also |
|
-------- |
|
numpy.amin : equivalent function |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'may_share_memory', |
|
""" |
|
Determine if two arrays can share memory |
|
|
|
The memory-bounds of a and b are computed. If they overlap then |
|
this function returns True. Otherwise, it returns False. |
|
|
|
A return of True does not necessarily mean that the two arrays |
|
share any element. It just means that they *might*. |
|
|
|
Parameters |
|
---------- |
|
a, b : ndarray |
|
|
|
Returns |
|
------- |
|
out : bool |
|
|
|
Examples |
|
-------- |
|
>>> np.may_share_memory(np.array([1,2]), np.array([5,8,9])) |
|
False |
|
|
|
""") |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('newbyteorder', |
|
""" |
|
arr.newbyteorder(new_order='S') |
|
|
|
Return the array with the same data viewed with a different byte order. |
|
|
|
Equivalent to:: |
|
|
|
arr.view(arr.dtype.newbytorder(new_order)) |
|
|
|
Changes are also made in all fields and sub-arrays of the array data |
|
type. |
|
|
|
|
|
|
|
Parameters |
|
---------- |
|
new_order : string, optional |
|
Byte order to force; a value from the byte order specifications |
|
above. `new_order` codes can be any of:: |
|
|
|
* 'S' - swap dtype from current to opposite endian |
|
* {'<', 'L'} - little endian |
|
* {'>', 'B'} - big endian |
|
* {'=', 'N'} - native order |
|
* {'|', 'I'} - ignore (no change to byte order) |
|
|
|
The default value ('S') results in swapping the current |
|
byte order. The code does a case-insensitive check on the first |
|
letter of `new_order` for the alternatives above. For example, |
|
any of 'B' or 'b' or 'biggish' are valid to specify big-endian. |
|
|
|
|
|
Returns |
|
------- |
|
new_arr : array |
|
New array object with the dtype reflecting given change to the |
|
byte order. |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('nonzero', |
|
""" |
|
a.nonzero() |
|
|
|
Return the indices of the elements that are non-zero. |
|
|
|
Refer to `numpy.nonzero` for full documentation. |
|
|
|
See Also |
|
-------- |
|
numpy.nonzero : equivalent function |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('prod', |
|
""" |
|
a.prod(axis=None, dtype=None, out=None) |
|
|
|
Return the product of the array elements over the given axis |
|
|
|
Refer to `numpy.prod` for full documentation. |
|
|
|
See Also |
|
-------- |
|
numpy.prod : equivalent function |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('ptp', |
|
""" |
|
a.ptp(axis=None, out=None) |
|
|
|
Peak to peak (maximum - minimum) value along a given axis. |
|
|
|
Refer to `numpy.ptp` for full documentation. |
|
|
|
See Also |
|
-------- |
|
numpy.ptp : equivalent function |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('put', |
|
""" |
|
a.put(indices, values, mode='raise') |
|
|
|
Set ``a.flat[n] = values[n]`` for all `n` in indices. |
|
|
|
Refer to `numpy.put` for full documentation. |
|
|
|
See Also |
|
-------- |
|
numpy.put : equivalent function |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.multiarray', 'copyto', |
|
""" |
|
copyto(dst, src, casting='same_kind', where=None, preservena=False) |
|
|
|
Copies values from one array to another, broadcasting as necessary. |
|
|
|
Raises a TypeError if the `casting` rule is violated, and if |
|
`where` is provided, it selects which elements to copy. |
|
|
|
.. versionadded:: 1.7.0 |
|
|
|
Parameters |
|
---------- |
|
dst : ndarray |
|
The array into which values are copied. |
|
src : array_like |
|
The array from which values are copied. |
|
casting : {'no', 'equiv', 'safe', 'same_kind', 'unsafe'}, optional |
|
Controls what kind of data casting may occur when copying. |
|
|
|
* 'no' means the data types should not be cast at all. |
|
* 'equiv' means only byte-order changes are allowed. |
|
* 'safe' means only casts which can preserve values are allowed. |
|
* 'same_kind' means only safe casts or casts within a kind, |
|
like float64 to float32, are allowed. |
|
* 'unsafe' means any data conversions may be done. |
|
where : array_like of bool, optional |
|
A boolean array which is broadcasted to match the dimensions |
|
of `dst`, and selects elements to copy from `src` to `dst` |
|
wherever it contains the value True. |
|
preservena : bool, optional |
|
If set to True, leaves any NA values in `dst` untouched. This |
|
is similar to the "hard mask" feature in numpy.ma. |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core.multiarray', 'putmask', |
|
""" |
|
putmask(a, mask, values) |
|
|
|
Changes elements of an array based on conditional and input values. |
|
|
|
Sets ``a.flat[n] = values[n]`` for each n where ``mask.flat[n]==True``. |
|
|
|
If `values` is not the same size as `a` and `mask` then it will repeat. |
|
This gives behavior different from ``a[mask] = values``. |
|
|
|
.. note:: The `putmask` functionality is also provided by `copyto`, which |
|
can be significantly faster and in addition is NA-aware |
|
(`preservena` keyword). Replacing `putmask` with |
|
``np.copyto(a, values, where=mask)`` is recommended. |
|
|
|
Parameters |
|
---------- |
|
a : array_like |
|
Target array. |
|
mask : array_like |
|
Boolean mask array. It has to be the same shape as `a`. |
|
values : array_like |
|
Values to put into `a` where `mask` is True. If `values` is smaller |
|
than `a` it will be repeated. |
|
|
|
See Also |
|
-------- |
|
place, put, take, copyto |
|
|
|
Examples |
|
-------- |
|
>>> x = np.arange(6).reshape(2, 3) |
|
>>> np.putmask(x, x>2, x**2) |
|
>>> x |
|
array([[ 0, 1, 2], |
|
[ 9, 16, 25]]) |
|
|
|
If `values` is smaller than `a` it is repeated: |
|
|
|
>>> x = np.arange(5) |
|
>>> np.putmask(x, x>1, [-33, -44]) |
|
>>> x |
|
array([ 0, 1, -33, -44, -33]) |
|
|
|
""") |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('ravel', |
|
""" |
|
a.ravel([order]) |
|
|
|
Return a flattened array. |
|
|
|
Refer to `numpy.ravel` for full documentation. |
|
|
|
See Also |
|
-------- |
|
numpy.ravel : equivalent function |
|
|
|
ndarray.flat : a flat iterator on the array. |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('repeat', |
|
""" |
|
a.repeat(repeats, axis=None) |
|
|
|
Repeat elements of an array. |
|
|
|
Refer to `numpy.repeat` for full documentation. |
|
|
|
See Also |
|
-------- |
|
numpy.repeat : equivalent function |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('reshape', |
|
""" |
|
a.reshape(shape, order='C') |
|
|
|
Returns an array containing the same data with a new shape. |
|
|
|
Refer to `numpy.reshape` for full documentation. |
|
|
|
See Also |
|
-------- |
|
numpy.reshape : equivalent function |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('resize', |
|
""" |
|
a.resize(new_shape, refcheck=True) |
|
|
|
Change shape and size of array in-place. |
|
|
|
Parameters |
|
---------- |
|
new_shape : tuple of ints, or `n` ints |
|
Shape of resized array. |
|
refcheck : bool, optional |
|
If False, reference count will not be checked. Default is True. |
|
|
|
Returns |
|
------- |
|
None |
|
|
|
Raises |
|
------ |
|
ValueError |
|
If `a` does not own its own data or references or views to it exist, |
|
and the data memory must be changed. |
|
|
|
SystemError |
|
If the `order` keyword argument is specified. This behaviour is a |
|
bug in NumPy. |
|
|
|
See Also |
|
-------- |
|
resize : Return a new array with the specified shape. |
|
|
|
Notes |
|
----- |
|
This reallocates space for the data area if necessary. |
|
|
|
Only contiguous arrays (data elements consecutive in memory) can be |
|
resized. |
|
|
|
The purpose of the reference count check is to make sure you |
|
do not use this array as a buffer for another Python object and then |
|
reallocate the memory. However, reference counts can increase in |
|
other ways so if you are sure that you have not shared the memory |
|
for this array with another Python object, then you may safely set |
|
`refcheck` to False. |
|
|
|
Examples |
|
-------- |
|
Shrinking an array: array is flattened (in the order that the data are |
|
stored in memory), resized, and reshaped: |
|
|
|
>>> a = np.array([[0, 1], [2, 3]], order='C') |
|
>>> a.resize((2, 1)) |
|
>>> a |
|
array([[0], |
|
[1]]) |
|
|
|
>>> a = np.array([[0, 1], [2, 3]], order='F') |
|
>>> a.resize((2, 1)) |
|
>>> a |
|
array([[0], |
|
[2]]) |
|
|
|
Enlarging an array: as above, but missing entries are filled with zeros: |
|
|
|
>>> b = np.array([[0, 1], [2, 3]]) |
|
>>> b.resize(2, 3) # new_shape parameter doesn't have to be a tuple |
|
>>> b |
|
array([[0, 1, 2], |
|
[3, 0, 0]]) |
|
|
|
Referencing an array prevents resizing... |
|
|
|
>>> c = a |
|
>>> a.resize((1, 1)) |
|
Traceback (most recent call last): |
|
... |
|
ValueError: cannot resize an array that has been referenced ... |
|
|
|
Unless `refcheck` is False: |
|
|
|
>>> a.resize((1, 1), refcheck=False) |
|
>>> a |
|
array([[0]]) |
|
>>> c |
|
array([[0]]) |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('round', |
|
""" |
|
a.round(decimals=0, out=None) |
|
|
|
Return `a` with each element rounded to the given number of decimals. |
|
|
|
Refer to `numpy.around` for full documentation. |
|
|
|
See Also |
|
-------- |
|
numpy.around : equivalent function |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('searchsorted', |
|
""" |
|
a.searchsorted(v, side='left', sorter=None) |
|
|
|
Find indices where elements of v should be inserted in a to maintain order. |
|
|
|
For full documentation, see `numpy.searchsorted` |
|
|
|
See Also |
|
-------- |
|
numpy.searchsorted : equivalent function |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('setfield', |
|
""" |
|
a.setfield(val, dtype, offset=0) |
|
|
|
Put a value into a specified place in a field defined by a data-type. |
|
|
|
Place `val` into `a`'s field defined by `dtype` and beginning `offset` |
|
bytes into the field. |
|
|
|
Parameters |
|
---------- |
|
val : object |
|
Value to be placed in field. |
|
dtype : dtype object |
|
Data-type of the field in which to place `val`. |
|
offset : int, optional |
|
The number of bytes into the field at which to place `val`. |
|
|
|
Returns |
|
------- |
|
None |
|
|
|
See Also |
|
-------- |
|
getfield |
|
|
|
Examples |
|
-------- |
|
>>> x = np.eye(3) |
|
>>> x.getfield(np.float64) |
|
array([[ 1., 0., 0.], |
|
[ 0., 1., 0.], |
|
[ 0., 0., 1.]]) |
|
>>> x.setfield(3, np.int32) |
|
>>> x.getfield(np.int32) |
|
array([[3, 3, 3], |
|
[3, 3, 3], |
|
[3, 3, 3]]) |
|
>>> x |
|
array([[ 1.00000000e+000, 1.48219694e-323, 1.48219694e-323], |
|
[ 1.48219694e-323, 1.00000000e+000, 1.48219694e-323], |
|
[ 1.48219694e-323, 1.48219694e-323, 1.00000000e+000]]) |
|
>>> x.setfield(np.eye(3), np.int32) |
|
>>> x |
|
array([[ 1., 0., 0.], |
|
[ 0., 1., 0.], |
|
[ 0., 0., 1.]]) |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('setflags', |
|
""" |
|
a.setflags(write=None, align=None, uic=None) |
|
|
|
Set array flags WRITEABLE, ALIGNED, and UPDATEIFCOPY, respectively. |
|
|
|
These Boolean-valued flags affect how numpy interprets the memory |
|
area used by `a` (see Notes below). The ALIGNED flag can only |
|
be set to True if the data is actually aligned according to the type. |
|
The UPDATEIFCOPY flag can never be set to True. The flag WRITEABLE |
|
can only be set to True if the array owns its own memory, or the |
|
ultimate owner of the memory exposes a writeable buffer interface, |
|
or is a string. (The exception for string is made so that unpickling |
|
can be done without copying memory.) |
|
|
|
Parameters |
|
---------- |
|
write : bool, optional |
|
Describes whether or not `a` can be written to. |
|
align : bool, optional |
|
Describes whether or not `a` is aligned properly for its type. |
|
uic : bool, optional |
|
Describes whether or not `a` is a copy of another "base" array. |
|
|
|
Notes |
|
----- |
|
Array flags provide information about how the memory area used |
|
for the array is to be interpreted. There are 6 Boolean flags |
|
in use, only three of which can be changed by the user: |
|
UPDATEIFCOPY, WRITEABLE, and ALIGNED. |
|
|
|
WRITEABLE (W) the data area can be written to; |
|
|
|
ALIGNED (A) the data and strides are aligned appropriately for the hardware |
|
(as determined by the compiler); |
|
|
|
UPDATEIFCOPY (U) this array is a copy of some other array (referenced |
|
by .base). When this array is deallocated, the base array will be |
|
updated with the contents of this array. |
|
|
|
All flags can be accessed using their first (upper case) letter as well |
|
as the full name. |
|
|
|
Examples |
|
-------- |
|
>>> y |
|
array([[3, 1, 7], |
|
[2, 0, 0], |
|
[8, 5, 9]]) |
|
>>> y.flags |
|
C_CONTIGUOUS : True |
|
F_CONTIGUOUS : False |
|
OWNDATA : True |
|
WRITEABLE : True |
|
ALIGNED : True |
|
UPDATEIFCOPY : False |
|
>>> y.setflags(write=0, align=0) |
|
>>> y.flags |
|
C_CONTIGUOUS : True |
|
F_CONTIGUOUS : False |
|
OWNDATA : True |
|
WRITEABLE : False |
|
ALIGNED : False |
|
UPDATEIFCOPY : False |
|
>>> y.setflags(uic=1) |
|
Traceback (most recent call last): |
|
File "<stdin>", line 1, in <module> |
|
ValueError: cannot set UPDATEIFCOPY flag to True |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('sort', |
|
""" |
|
a.sort(axis=-1, kind='quicksort', order=None) |
|
|
|
Sort an array, in-place. |
|
|
|
Parameters |
|
---------- |
|
axis : int, optional |
|
Axis along which to sort. Default is -1, which means sort along the |
|
last axis. |
|
kind : {'quicksort', 'mergesort', 'heapsort'}, optional |
|
Sorting algorithm. Default is 'quicksort'. |
|
order : list, optional |
|
When `a` is an array with fields defined, this argument specifies |
|
which fields to compare first, second, etc. Not all fields need be |
|
specified. |
|
|
|
See Also |
|
-------- |
|
numpy.sort : Return a sorted copy of an array. |
|
argsort : Indirect sort. |
|
lexsort : Indirect stable sort on multiple keys. |
|
searchsorted : Find elements in sorted array. |
|
partition: Partial sort. |
|
|
|
Notes |
|
----- |
|
See ``sort`` for notes on the different sorting algorithms. |
|
|
|
Examples |
|
-------- |
|
>>> a = np.array([[1,4], [3,1]]) |
|
>>> a.sort(axis=1) |
|
>>> a |
|
array([[1, 4], |
|
[1, 3]]) |
|
>>> a.sort(axis=0) |
|
>>> a |
|
array([[1, 3], |
|
[1, 4]]) |
|
|
|
Use the `order` keyword to specify a field to use when sorting a |
|
structured array: |
|
|
|
>>> a = np.array([('a', 2), ('c', 1)], dtype=[('x', 'S1'), ('y', int)]) |
|
>>> a.sort(order='y') |
|
>>> a |
|
array([('c', 1), ('a', 2)], |
|
dtype=[('x', '|S1'), ('y', '<i4')]) |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('partition', |
|
""" |
|
a.partition(kth, axis=-1, kind='introselect', order=None) |
|
|
|
Rearranges the elements in the array in such a way that value of the |
|
element in kth position is in the position it would be in a sorted array. |
|
All elements smaller than the kth element are moved before this element and |
|
all equal or greater are moved behind it. The ordering of the elements in |
|
the two partitions is undefined. |
|
|
|
.. versionadded:: 1.8.0 |
|
|
|
Parameters |
|
---------- |
|
kth : int or sequence of ints |
|
Element index to partition by. The kth element value will be in its |
|
final sorted position and all smaller elements will be moved before it |
|
and all equal or greater elements behind it. |
|
The order all elements in the partitions is undefined. |
|
If provided with a sequence of kth it will partition all elements |
|
indexed by kth of them into their sorted position at once. |
|
axis : int, optional |
|
Axis along which to sort. Default is -1, which means sort along the |
|
last axis. |
|
kind : {'introselect'}, optional |
|
Selection algorithm. Default is 'introselect'. |
|
order : list, optional |
|
When `a` is an array with fields defined, this argument specifies |
|
which fields to compare first, second, etc. Not all fields need be |
|
specified. |
|
|
|
See Also |
|
-------- |
|
numpy.partition : Return a parititioned copy of an array. |
|
argpartition : Indirect partition. |
|
sort : Full sort. |
|
|
|
Notes |
|
----- |
|
See ``np.partition`` for notes on the different algorithms. |
|
|
|
Examples |
|
-------- |
|
>>> a = np.array([3, 4, 2, 1]) |
|
>>> a.partition(a, 3) |
|
>>> a |
|
array([2, 1, 3, 4]) |
|
|
|
>>> a.partition((1, 3)) |
|
array([1, 2, 3, 4]) |
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('squeeze', |
|
""" |
|
a.squeeze(axis=None) |
|
|
|
Remove single-dimensional entries from the shape of `a`. |
|
|
|
Refer to `numpy.squeeze` for full documentation. |
|
|
|
See Also |
|
-------- |
|
numpy.squeeze : equivalent function |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('std', |
|
""" |
|
a.std(axis=None, dtype=None, out=None, ddof=0) |
|
|
|
Returns the standard deviation of the array elements along given axis. |
|
|
|
Refer to `numpy.std` for full documentation. |
|
|
|
See Also |
|
-------- |
|
numpy.std : equivalent function |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('sum', |
|
""" |
|
a.sum(axis=None, dtype=None, out=None) |
|
|
|
Return the sum of the array elements over the given axis. |
|
|
|
Refer to `numpy.sum` for full documentation. |
|
|
|
See Also |
|
-------- |
|
numpy.sum : equivalent function |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('swapaxes', |
|
""" |
|
a.swapaxes(axis1, axis2) |
|
|
|
Return a view of the array with `axis1` and `axis2` interchanged. |
|
|
|
Refer to `numpy.swapaxes` for full documentation. |
|
|
|
See Also |
|
-------- |
|
numpy.swapaxes : equivalent function |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('take', |
|
""" |
|
a.take(indices, axis=None, out=None, mode='raise') |
|
|
|
Return an array formed from the elements of `a` at the given indices. |
|
|
|
Refer to `numpy.take` for full documentation. |
|
|
|
See Also |
|
-------- |
|
numpy.take : equivalent function |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('tofile', |
|
""" |
|
a.tofile(fid, sep="", format="%s") |
|
|
|
Write array to a file as text or binary (default). |
|
|
|
Data is always written in 'C' order, independent of the order of `a`. |
|
The data produced by this method can be recovered using the function |
|
fromfile(). |
|
|
|
Parameters |
|
---------- |
|
fid : file or str |
|
An open file object, or a string containing a filename. |
|
sep : str |
|
Separator between array items for text output. |
|
If "" (empty), a binary file is written, equivalent to |
|
``file.write(a.tobytes())``. |
|
format : str |
|
Format string for text file output. |
|
Each entry in the array is formatted to text by first converting |
|
it to the closest Python type, and then using "format" % item. |
|
|
|
Notes |
|
----- |
|
This is a convenience function for quick storage of array data. |
|
Information on endianness and precision is lost, so this method is not a |
|
good choice for files intended to archive data or transport data between |
|
machines with different endianness. Some of these problems can be overcome |
|
by outputting the data as text files, at the expense of speed and file |
|
size. |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('tolist', |
|
""" |
|
a.tolist() |
|
|
|
Return the array as a (possibly nested) list. |
|
|
|
Return a copy of the array data as a (nested) Python list. |
|
Data items are converted to the nearest compatible Python type. |
|
|
|
Parameters |
|
---------- |
|
none |
|
|
|
Returns |
|
------- |
|
y : list |
|
The possibly nested list of array elements. |
|
|
|
Notes |
|
----- |
|
The array may be recreated, ``a = np.array(a.tolist())``. |
|
|
|
Examples |
|
-------- |
|
>>> a = np.array([1, 2]) |
|
>>> a.tolist() |
|
[1, 2] |
|
>>> a = np.array([[1, 2], [3, 4]]) |
|
>>> list(a) |
|
[array([1, 2]), array([3, 4])] |
|
>>> a.tolist() |
|
[[1, 2], [3, 4]] |
|
|
|
""")) |
|
|
|
|
|
tobytesdoc = """ |
|
a.{name}(order='C') |
|
|
|
Construct Python bytes containing the raw data bytes in the array. |
|
|
|
Constructs Python bytes showing a copy of the raw contents of |
|
data memory. The bytes object can be produced in either 'C' or 'Fortran', |
|
or 'Any' order (the default is 'C'-order). 'Any' order means C-order |
|
unless the F_CONTIGUOUS flag in the array is set, in which case it |
|
means 'Fortran' order. |
|
|
|
{deprecated} |
|
|
|
Parameters |
|
---------- |
|
order : {{'C', 'F', None}}, optional |
|
Order of the data for multidimensional arrays: |
|
C, Fortran, or the same as for the original array. |
|
|
|
Returns |
|
------- |
|
s : bytes |
|
Python bytes exhibiting a copy of `a`'s raw data. |
|
|
|
Examples |
|
-------- |
|
>>> x = np.array([[0, 1], [2, 3]]) |
|
>>> x.tobytes() |
|
b'\\x00\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x02\\x00\\x00\\x00\\x03\\x00\\x00\\x00' |
|
>>> x.tobytes('C') == x.tobytes() |
|
True |
|
>>> x.tobytes('F') |
|
b'\\x00\\x00\\x00\\x00\\x02\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x03\\x00\\x00\\x00' |
|
|
|
""" |
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', |
|
('tostring', tobytesdoc.format(name='tostring', |
|
deprecated= |
|
'This function is a compatibility ' |
|
'alias for tobytes. Despite its ' |
|
'name it returns bytes not ' |
|
'strings.'))) |
|
add_newdoc('numpy.core.multiarray', 'ndarray', |
|
('tobytes', tobytesdoc.format(name='tobytes', |
|
deprecated='.. versionadded:: 1.9.0'))) |
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('trace', |
|
""" |
|
a.trace(offset=0, axis1=0, axis2=1, dtype=None, out=None) |
|
|
|
Return the sum along diagonals of the array. |
|
|
|
Refer to `numpy.trace` for full documentation. |
|
|
|
See Also |
|
-------- |
|
numpy.trace : equivalent function |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('transpose', |
|
""" |
|
a.transpose(*axes) |
|
|
|
Returns a view of the array with axes transposed. |
|
|
|
For a 1-D array, this has no effect. (To change between column and |
|
row vectors, first cast the 1-D array into a matrix object.) |
|
For a 2-D array, this is the usual matrix transpose. |
|
For an n-D array, if axes are given, their order indicates how the |
|
axes are permuted (see Examples). If axes are not provided and |
|
``a.shape = (i[0], i[1], ... i[n-2], i[n-1])``, then |
|
``a.transpose().shape = (i[n-1], i[n-2], ... i[1], i[0])``. |
|
|
|
Parameters |
|
---------- |
|
axes : None, tuple of ints, or `n` ints |
|
|
|
* None or no argument: reverses the order of the axes. |
|
|
|
* tuple of ints: `i` in the `j`-th place in the tuple means `a`'s |
|
`i`-th axis becomes `a.transpose()`'s `j`-th axis. |
|
|
|
* `n` ints: same as an n-tuple of the same ints (this form is |
|
intended simply as a "convenience" alternative to the tuple form) |
|
|
|
Returns |
|
------- |
|
out : ndarray |
|
View of `a`, with axes suitably permuted. |
|
|
|
See Also |
|
-------- |
|
ndarray.T : Array property returning the array transposed. |
|
|
|
Examples |
|
-------- |
|
>>> a = np.array([[1, 2], [3, 4]]) |
|
>>> a |
|
array([[1, 2], |
|
[3, 4]]) |
|
>>> a.transpose() |
|
array([[1, 3], |
|
[2, 4]]) |
|
>>> a.transpose((1, 0)) |
|
array([[1, 3], |
|
[2, 4]]) |
|
>>> a.transpose(1, 0) |
|
array([[1, 3], |
|
[2, 4]]) |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('var', |
|
""" |
|
a.var(axis=None, dtype=None, out=None, ddof=0) |
|
|
|
Returns the variance of the array elements, along given axis. |
|
|
|
Refer to `numpy.var` for full documentation. |
|
|
|
See Also |
|
-------- |
|
numpy.var : equivalent function |
|
|
|
""")) |
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'ndarray', ('view', |
|
""" |
|
a.view(dtype=None, type=None) |
|
|
|
New view of array with the same data. |
|
|
|
Parameters |
|
---------- |
|
dtype : data-type or ndarray sub-class, optional |
|
Data-type descriptor of the returned view, e.g., float32 or int16. The |
|
default, None, results in the view having the same data-type as `a`. |
|
This argument can also be specified as an ndarray sub-class, which |
|
then specifies the type of the returned object (this is equivalent to |
|
setting the ``type`` parameter). |
|
type : Python type, optional |
|
Type of the returned view, e.g., ndarray or matrix. Again, the |
|
default None results in type preservation. |
|
|
|
Notes |
|
----- |
|
``a.view()`` is used two different ways: |
|
|
|
``a.view(some_dtype)`` or ``a.view(dtype=some_dtype)`` constructs a view |
|
of the array's memory with a different data-type. This can cause a |
|
reinterpretation of the bytes of memory. |
|
|
|
``a.view(ndarray_subclass)`` or ``a.view(type=ndarray_subclass)`` just |
|
returns an instance of `ndarray_subclass` that looks at the same array |
|
(same shape, dtype, etc.) This does not cause a reinterpretation of the |
|
memory. |
|
|
|
For ``a.view(some_dtype)``, if ``some_dtype`` has a different number of |
|
bytes per entry than the previous dtype (for example, converting a |
|
regular array to a structured array), then the behavior of the view |
|
cannot be predicted just from the superficial appearance of ``a`` (shown |
|
by ``print(a)``). It also depends on exactly how ``a`` is stored in |
|
memory. Therefore if ``a`` is C-ordered versus fortran-ordered, versus |
|
defined as a slice or transpose, etc., the view may give different |
|
results. |
|
|
|
|
|
Examples |
|
-------- |
|
>>> x = np.array([(1, 2)], dtype=[('a', np.int8), ('b', np.int8)]) |
|
|
|
Viewing array data using a different type and dtype: |
|
|
|
>>> y = x.view(dtype=np.int16, type=np.matrix) |
|
>>> y |
|
matrix([[513]], dtype=int16) |
|
>>> print type(y) |
|
<class 'numpy.matrixlib.defmatrix.matrix'> |
|
|
|
Creating a view on a structured array so it can be used in calculations |
|
|
|
>>> x = np.array([(1, 2),(3,4)], dtype=[('a', np.int8), ('b', np.int8)]) |
|
>>> xv = x.view(dtype=np.int8).reshape(-1,2) |
|
>>> xv |
|
array([[1, 2], |
|
[3, 4]], dtype=int8) |
|
>>> xv.mean(0) |
|
array([ 2., 3.]) |
|
|
|
Making changes to the view changes the underlying array |
|
|
|
>>> xv[0,1] = 20 |
|
>>> print x |
|
[(1, 20) (3, 4)] |
|
|
|
Using a view to convert an array to a record array: |
|
|
|
>>> z = x.view(np.recarray) |
|
>>> z.a |
|
array([1], dtype=int8) |
|
|
|
Views share data: |
|
|
|
>>> x[0] = (9, 10) |
|
>>> z[0] |
|
(9, 10) |
|
|
|
Views that change the dtype size (bytes per entry) should normally be |
|
avoided on arrays defined by slices, transposes, fortran-ordering, etc.: |
|
|
|
>>> x = np.array([[1,2,3],[4,5,6]], dtype=np.int16) |
|
>>> y = x[:, 0:2] |
|
>>> y |
|
array([[1, 2], |
|
[4, 5]], dtype=int16) |
|
>>> y.view(dtype=[('width', np.int16), ('length', np.int16)]) |
|
Traceback (most recent call last): |
|
File "<stdin>", line 1, in <module> |
|
ValueError: new type not compatible with array. |
|
>>> z = y.copy() |
|
>>> z.view(dtype=[('width', np.int16), ('length', np.int16)]) |
|
array([[(1, 2)], |
|
[(4, 5)]], dtype=[('width', '<i2'), ('length', '<i2')]) |
|
""")) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
add_newdoc('numpy.core.umath', 'frompyfunc', |
|
""" |
|
frompyfunc(func, nin, nout) |
|
|
|
Takes an arbitrary Python function and returns a Numpy ufunc. |
|
|
|
Can be used, for example, to add broadcasting to a built-in Python |
|
function (see Examples section). |
|
|
|
Parameters |
|
---------- |
|
func : Python function object |
|
An arbitrary Python function. |
|
nin : int |
|
The number of input arguments. |
|
nout : int |
|
The number of objects returned by `func`. |
|
|
|
Returns |
|
------- |
|
out : ufunc |
|
Returns a Numpy universal function (``ufunc``) object. |
|
|
|
Notes |
|
----- |
|
The returned ufunc always returns PyObject arrays. |
|
|
|
Examples |
|
-------- |
|
Use frompyfunc to add broadcasting to the Python function ``oct``: |
|
|
|
>>> oct_array = np.frompyfunc(oct, 1, 1) |
|
>>> oct_array(np.array((10, 30, 100))) |
|
array([012, 036, 0144], dtype=object) |
|
>>> np.array((oct(10), oct(30), oct(100))) # for comparison |
|
array(['012', '036', '0144'], |
|
dtype='|S4') |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core.umath', 'geterrobj', |
|
""" |
|
geterrobj() |
|
|
|
Return the current object that defines floating-point error handling. |
|
|
|
The error object contains all information that defines the error handling |
|
behavior in Numpy. `geterrobj` is used internally by the other |
|
functions that get and set error handling behavior (`geterr`, `seterr`, |
|
`geterrcall`, `seterrcall`). |
|
|
|
Returns |
|
------- |
|
errobj : list |
|
The error object, a list containing three elements: |
|
[internal numpy buffer size, error mask, error callback function]. |
|
|
|
The error mask is a single integer that holds the treatment information |
|
on all four floating point errors. The information for each error type |
|
is contained in three bits of the integer. If we print it in base 8, we |
|
can see what treatment is set for "invalid", "under", "over", and |
|
"divide" (in that order). The printed string can be interpreted with |
|
|
|
* 0 : 'ignore' |
|
* 1 : 'warn' |
|
* 2 : 'raise' |
|
* 3 : 'call' |
|
* 4 : 'print' |
|
* 5 : 'log' |
|
|
|
See Also |
|
-------- |
|
seterrobj, seterr, geterr, seterrcall, geterrcall |
|
getbufsize, setbufsize |
|
|
|
Notes |
|
----- |
|
For complete documentation of the types of floating-point exceptions and |
|
treatment options, see `seterr`. |
|
|
|
Examples |
|
-------- |
|
>>> np.geterrobj() # first get the defaults |
|
[10000, 0, None] |
|
|
|
>>> def err_handler(type, flag): |
|
... print "Floating point error (%s), with flag %s" % (type, flag) |
|
... |
|
>>> old_bufsize = np.setbufsize(20000) |
|
>>> old_err = np.seterr(divide='raise') |
|
>>> old_handler = np.seterrcall(err_handler) |
|
>>> np.geterrobj() |
|
[20000, 2, <function err_handler at 0x91dcaac>] |
|
|
|
>>> old_err = np.seterr(all='ignore') |
|
>>> np.base_repr(np.geterrobj()[1], 8) |
|
'0' |
|
>>> old_err = np.seterr(divide='warn', over='log', under='call', |
|
invalid='print') |
|
>>> np.base_repr(np.geterrobj()[1], 8) |
|
'4351' |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core.umath', 'seterrobj', |
|
""" |
|
seterrobj(errobj) |
|
|
|
Set the object that defines floating-point error handling. |
|
|
|
The error object contains all information that defines the error handling |
|
behavior in Numpy. `seterrobj` is used internally by the other |
|
functions that set error handling behavior (`seterr`, `seterrcall`). |
|
|
|
Parameters |
|
---------- |
|
errobj : list |
|
The error object, a list containing three elements: |
|
[internal numpy buffer size, error mask, error callback function]. |
|
|
|
The error mask is a single integer that holds the treatment information |
|
on all four floating point errors. The information for each error type |
|
is contained in three bits of the integer. If we print it in base 8, we |
|
can see what treatment is set for "invalid", "under", "over", and |
|
"divide" (in that order). The printed string can be interpreted with |
|
|
|
* 0 : 'ignore' |
|
* 1 : 'warn' |
|
* 2 : 'raise' |
|
* 3 : 'call' |
|
* 4 : 'print' |
|
* 5 : 'log' |
|
|
|
See Also |
|
-------- |
|
geterrobj, seterr, geterr, seterrcall, geterrcall |
|
getbufsize, setbufsize |
|
|
|
Notes |
|
----- |
|
For complete documentation of the types of floating-point exceptions and |
|
treatment options, see `seterr`. |
|
|
|
Examples |
|
-------- |
|
>>> old_errobj = np.geterrobj() # first get the defaults |
|
>>> old_errobj |
|
[10000, 0, None] |
|
|
|
>>> def err_handler(type, flag): |
|
... print "Floating point error (%s), with flag %s" % (type, flag) |
|
... |
|
>>> new_errobj = [20000, 12, err_handler] |
|
>>> np.seterrobj(new_errobj) |
|
>>> np.base_repr(12, 8) # int for divide=4 ('print') and over=1 ('warn') |
|
'14' |
|
>>> np.geterr() |
|
{'over': 'warn', 'divide': 'print', 'invalid': 'ignore', 'under': 'ignore'} |
|
>>> np.geterrcall() is err_handler |
|
True |
|
|
|
""") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
add_newdoc('numpy.lib._compiled_base', 'digitize', |
|
""" |
|
digitize(x, bins, right=False) |
|
|
|
Return the indices of the bins to which each value in input array belongs. |
|
|
|
Each index ``i`` returned is such that ``bins[i-1] <= x < bins[i]`` if |
|
`bins` is monotonically increasing, or ``bins[i-1] > x >= bins[i]`` if |
|
`bins` is monotonically decreasing. If values in `x` are beyond the |
|
bounds of `bins`, 0 or ``len(bins)`` is returned as appropriate. If right |
|
is True, then the right bin is closed so that the index ``i`` is such |
|
that ``bins[i-1] < x <= bins[i]`` or bins[i-1] >= x > bins[i]`` if `bins` |
|
is monotonically increasing or decreasing, respectively. |
|
|
|
Parameters |
|
---------- |
|
x : array_like |
|
Input array to be binned. It has to be 1-dimensional. |
|
bins : array_like |
|
Array of bins. It has to be 1-dimensional and monotonic. |
|
right : bool, optional |
|
Indicating whether the intervals include the right or the left bin |
|
edge. Default behavior is (right==False) indicating that the interval |
|
does not include the right edge. The left bin and is open in this |
|
case. Ie., bins[i-1] <= x < bins[i] is the default behavior for |
|
monotonically increasing bins. |
|
|
|
Returns |
|
------- |
|
out : ndarray of ints |
|
Output array of indices, of same shape as `x`. |
|
|
|
Raises |
|
------ |
|
ValueError |
|
If the input is not 1-dimensional, or if `bins` is not monotonic. |
|
TypeError |
|
If the type of the input is complex. |
|
|
|
See Also |
|
-------- |
|
bincount, histogram, unique |
|
|
|
Notes |
|
----- |
|
If values in `x` are such that they fall outside the bin range, |
|
attempting to index `bins` with the indices that `digitize` returns |
|
will result in an IndexError. |
|
|
|
Examples |
|
-------- |
|
>>> x = np.array([0.2, 6.4, 3.0, 1.6]) |
|
>>> bins = np.array([0.0, 1.0, 2.5, 4.0, 10.0]) |
|
>>> inds = np.digitize(x, bins) |
|
>>> inds |
|
array([1, 4, 3, 2]) |
|
>>> for n in range(x.size): |
|
... print bins[inds[n]-1], "<=", x[n], "<", bins[inds[n]] |
|
... |
|
0.0 <= 0.2 < 1.0 |
|
4.0 <= 6.4 < 10.0 |
|
2.5 <= 3.0 < 4.0 |
|
1.0 <= 1.6 < 2.5 |
|
|
|
>>> x = np.array([1.2, 10.0, 12.4, 15.5, 20.]) |
|
>>> bins = np.array([0,5,10,15,20]) |
|
>>> np.digitize(x,bins,right=True) |
|
array([1, 2, 3, 4, 4]) |
|
>>> np.digitize(x,bins,right=False) |
|
array([1, 3, 3, 4, 5]) |
|
""") |
|
|
|
add_newdoc('numpy.lib._compiled_base', 'bincount', |
|
""" |
|
bincount(x, weights=None, minlength=None) |
|
|
|
Count number of occurrences of each value in array of non-negative ints. |
|
|
|
The number of bins (of size 1) is one larger than the largest value in |
|
`x`. If `minlength` is specified, there will be at least this number |
|
of bins in the output array (though it will be longer if necessary, |
|
depending on the contents of `x`). |
|
Each bin gives the number of occurrences of its index value in `x`. |
|
If `weights` is specified the input array is weighted by it, i.e. if a |
|
value ``n`` is found at position ``i``, ``out[n] += weight[i]`` instead |
|
of ``out[n] += 1``. |
|
|
|
Parameters |
|
---------- |
|
x : array_like, 1 dimension, nonnegative ints |
|
Input array. |
|
weights : array_like, optional |
|
Weights, array of the same shape as `x`. |
|
minlength : int, optional |
|
.. versionadded:: 1.6.0 |
|
|
|
A minimum number of bins for the output array. |
|
|
|
Returns |
|
------- |
|
out : ndarray of ints |
|
The result of binning the input array. |
|
The length of `out` is equal to ``np.amax(x)+1``. |
|
|
|
Raises |
|
------ |
|
ValueError |
|
If the input is not 1-dimensional, or contains elements with negative |
|
values, or if `minlength` is non-positive. |
|
TypeError |
|
If the type of the input is float or complex. |
|
|
|
See Also |
|
-------- |
|
histogram, digitize, unique |
|
|
|
Examples |
|
-------- |
|
>>> np.bincount(np.arange(5)) |
|
array([1, 1, 1, 1, 1]) |
|
>>> np.bincount(np.array([0, 1, 1, 3, 2, 1, 7])) |
|
array([1, 3, 1, 1, 0, 0, 0, 1]) |
|
|
|
>>> x = np.array([0, 1, 1, 3, 2, 1, 7, 23]) |
|
>>> np.bincount(x).size == np.amax(x)+1 |
|
True |
|
|
|
The input array needs to be of integer dtype, otherwise a |
|
TypeError is raised: |
|
|
|
>>> np.bincount(np.arange(5, dtype=np.float)) |
|
Traceback (most recent call last): |
|
File "<stdin>", line 1, in <module> |
|
TypeError: array cannot be safely cast to required type |
|
|
|
A possible use of ``bincount`` is to perform sums over |
|
variable-size chunks of an array, using the ``weights`` keyword. |
|
|
|
>>> w = np.array([0.3, 0.5, 0.2, 0.7, 1., -0.6]) # weights |
|
>>> x = np.array([0, 1, 1, 2, 2, 2]) |
|
>>> np.bincount(x, weights=w) |
|
array([ 0.3, 0.7, 1.1]) |
|
|
|
""") |
|
|
|
add_newdoc('numpy.lib._compiled_base', 'ravel_multi_index', |
|
""" |
|
ravel_multi_index(multi_index, dims, mode='raise', order='C') |
|
|
|
Converts a tuple of index arrays into an array of flat |
|
indices, applying boundary modes to the multi-index. |
|
|
|
Parameters |
|
---------- |
|
multi_index : tuple of array_like |
|
A tuple of integer arrays, one array for each dimension. |
|
dims : tuple of ints |
|
The shape of array into which the indices from ``multi_index`` apply. |
|
mode : {'raise', 'wrap', 'clip'}, optional |
|
Specifies how out-of-bounds indices are handled. Can specify |
|
either one mode or a tuple of modes, one mode per index. |
|
|
|
* 'raise' -- raise an error (default) |
|
* 'wrap' -- wrap around |
|
* 'clip' -- clip to the range |
|
|
|
In 'clip' mode, a negative index which would normally |
|
wrap will clip to 0 instead. |
|
order : {'C', 'F'}, optional |
|
Determines whether the multi-index should be viewed as indexing in |
|
C (row-major) order or FORTRAN (column-major) order. |
|
|
|
Returns |
|
------- |
|
raveled_indices : ndarray |
|
An array of indices into the flattened version of an array |
|
of dimensions ``dims``. |
|
|
|
See Also |
|
-------- |
|
unravel_index |
|
|
|
Notes |
|
----- |
|
.. versionadded:: 1.6.0 |
|
|
|
Examples |
|
-------- |
|
>>> arr = np.array([[3,6,6],[4,5,1]]) |
|
>>> np.ravel_multi_index(arr, (7,6)) |
|
array([22, 41, 37]) |
|
>>> np.ravel_multi_index(arr, (7,6), order='F') |
|
array([31, 41, 13]) |
|
>>> np.ravel_multi_index(arr, (4,6), mode='clip') |
|
array([22, 23, 19]) |
|
>>> np.ravel_multi_index(arr, (4,4), mode=('clip','wrap')) |
|
array([12, 13, 13]) |
|
|
|
>>> np.ravel_multi_index((3,1,4,1), (6,7,8,9)) |
|
1621 |
|
""") |
|
|
|
add_newdoc('numpy.lib._compiled_base', 'unravel_index', |
|
""" |
|
unravel_index(indices, dims, order='C') |
|
|
|
Converts a flat index or array of flat indices into a tuple |
|
of coordinate arrays. |
|
|
|
Parameters |
|
---------- |
|
indices : array_like |
|
An integer array whose elements are indices into the flattened |
|
version of an array of dimensions ``dims``. Before version 1.6.0, |
|
this function accepted just one index value. |
|
dims : tuple of ints |
|
The shape of the array to use for unraveling ``indices``. |
|
order : {'C', 'F'}, optional |
|
.. versionadded:: 1.6.0 |
|
|
|
Determines whether the indices should be viewed as indexing in |
|
C (row-major) order or FORTRAN (column-major) order. |
|
|
|
Returns |
|
------- |
|
unraveled_coords : tuple of ndarray |
|
Each array in the tuple has the same shape as the ``indices`` |
|
array. |
|
|
|
See Also |
|
-------- |
|
ravel_multi_index |
|
|
|
Examples |
|
-------- |
|
>>> np.unravel_index([22, 41, 37], (7,6)) |
|
(array([3, 6, 6]), array([4, 5, 1])) |
|
>>> np.unravel_index([31, 41, 13], (7,6), order='F') |
|
(array([3, 6, 6]), array([4, 5, 1])) |
|
|
|
>>> np.unravel_index(1621, (6,7,8,9)) |
|
(3, 1, 4, 1) |
|
|
|
""") |
|
|
|
add_newdoc('numpy.lib._compiled_base', 'add_docstring', |
|
""" |
|
add_docstring(obj, docstring) |
|
|
|
Add a docstring to a built-in obj if possible. |
|
If the obj already has a docstring raise a RuntimeError |
|
If this routine does not know how to add a docstring to the object |
|
raise a TypeError |
|
""") |
|
|
|
add_newdoc('numpy.lib._compiled_base', 'add_newdoc_ufunc', |
|
""" |
|
add_ufunc_docstring(ufunc, new_docstring) |
|
|
|
Replace the docstring for a ufunc with new_docstring. |
|
This method will only work if the current docstring for |
|
the ufunc is NULL. (At the C level, i.e. when ufunc->doc is NULL.) |
|
|
|
Parameters |
|
---------- |
|
ufunc : numpy.ufunc |
|
A ufunc whose current doc is NULL. |
|
new_docstring : string |
|
The new docstring for the ufunc. |
|
|
|
Notes |
|
----- |
|
This method allocates memory for new_docstring on |
|
the heap. Technically this creates a mempory leak, since this |
|
memory will not be reclaimed until the end of the program |
|
even if the ufunc itself is removed. However this will only |
|
be a problem if the user is repeatedly creating ufuncs with |
|
no documentation, adding documentation via add_newdoc_ufunc, |
|
and then throwing away the ufunc. |
|
""") |
|
|
|
add_newdoc('numpy.lib._compiled_base', 'packbits', |
|
""" |
|
packbits(myarray, axis=None) |
|
|
|
Packs the elements of a binary-valued array into bits in a uint8 array. |
|
|
|
The result is padded to full bytes by inserting zero bits at the end. |
|
|
|
Parameters |
|
---------- |
|
myarray : array_like |
|
An integer type array whose elements should be packed to bits. |
|
axis : int, optional |
|
The dimension over which bit-packing is done. |
|
``None`` implies packing the flattened array. |
|
|
|
Returns |
|
------- |
|
packed : ndarray |
|
Array of type uint8 whose elements represent bits corresponding to the |
|
logical (0 or nonzero) value of the input elements. The shape of |
|
`packed` has the same number of dimensions as the input (unless `axis` |
|
is None, in which case the output is 1-D). |
|
|
|
See Also |
|
-------- |
|
unpackbits: Unpacks elements of a uint8 array into a binary-valued output |
|
array. |
|
|
|
Examples |
|
-------- |
|
>>> a = np.array([[[1,0,1], |
|
... [0,1,0]], |
|
... [[1,1,0], |
|
... [0,0,1]]]) |
|
>>> b = np.packbits(a, axis=-1) |
|
>>> b |
|
array([[[160],[64]],[[192],[32]]], dtype=uint8) |
|
|
|
Note that in binary 160 = 1010 0000, 64 = 0100 0000, 192 = 1100 0000, |
|
and 32 = 0010 0000. |
|
|
|
""") |
|
|
|
add_newdoc('numpy.lib._compiled_base', 'unpackbits', |
|
""" |
|
unpackbits(myarray, axis=None) |
|
|
|
Unpacks elements of a uint8 array into a binary-valued output array. |
|
|
|
Each element of `myarray` represents a bit-field that should be unpacked |
|
into a binary-valued output array. The shape of the output array is either |
|
1-D (if `axis` is None) or the same shape as the input array with unpacking |
|
done along the axis specified. |
|
|
|
Parameters |
|
---------- |
|
myarray : ndarray, uint8 type |
|
Input array. |
|
axis : int, optional |
|
Unpacks along this axis. |
|
|
|
Returns |
|
------- |
|
unpacked : ndarray, uint8 type |
|
The elements are binary-valued (0 or 1). |
|
|
|
See Also |
|
-------- |
|
packbits : Packs the elements of a binary-valued array into bits in a uint8 |
|
array. |
|
|
|
Examples |
|
-------- |
|
>>> a = np.array([[2], [7], [23]], dtype=np.uint8) |
|
>>> a |
|
array([[ 2], |
|
[ 7], |
|
[23]], dtype=uint8) |
|
>>> b = np.unpackbits(a, axis=1) |
|
>>> b |
|
array([[0, 0, 0, 0, 0, 0, 1, 0], |
|
[0, 0, 0, 0, 0, 1, 1, 1], |
|
[0, 0, 0, 1, 0, 1, 1, 1]], dtype=uint8) |
|
|
|
""") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
add_newdoc('numpy.core', 'ufunc', |
|
""" |
|
Functions that operate element by element on whole arrays. |
|
|
|
To see the documentation for a specific ufunc, use np.info(). For |
|
example, np.info(np.sin). Because ufuncs are written in C |
|
(for speed) and linked into Python with NumPy's ufunc facility, |
|
Python's help() function finds this page whenever help() is called |
|
on a ufunc. |
|
|
|
A detailed explanation of ufuncs can be found in the "ufuncs.rst" |
|
file in the NumPy reference guide. |
|
|
|
Unary ufuncs: |
|
============= |
|
|
|
op(X, out=None) |
|
Apply op to X elementwise |
|
|
|
Parameters |
|
---------- |
|
X : array_like |
|
Input array. |
|
out : array_like |
|
An array to store the output. Must be the same shape as `X`. |
|
|
|
Returns |
|
------- |
|
r : array_like |
|
`r` will have the same shape as `X`; if out is provided, `r` |
|
will be equal to out. |
|
|
|
Binary ufuncs: |
|
============== |
|
|
|
op(X, Y, out=None) |
|
Apply `op` to `X` and `Y` elementwise. May "broadcast" to make |
|
the shapes of `X` and `Y` congruent. |
|
|
|
The broadcasting rules are: |
|
|
|
* Dimensions of length 1 may be prepended to either array. |
|
* Arrays may be repeated along dimensions of length 1. |
|
|
|
Parameters |
|
---------- |
|
X : array_like |
|
First input array. |
|
Y : array_like |
|
Second input array. |
|
out : array_like |
|
An array to store the output. Must be the same shape as the |
|
output would have. |
|
|
|
Returns |
|
------- |
|
r : array_like |
|
The return value; if out is provided, `r` will be equal to out. |
|
|
|
""") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
add_newdoc('numpy.core', 'ufunc', ('identity', |
|
""" |
|
The identity value. |
|
|
|
Data attribute containing the identity element for the ufunc, if it has one. |
|
If it does not, the attribute value is None. |
|
|
|
Examples |
|
-------- |
|
>>> np.add.identity |
|
0 |
|
>>> np.multiply.identity |
|
1 |
|
>>> np.power.identity |
|
1 |
|
>>> print np.exp.identity |
|
None |
|
""")) |
|
|
|
add_newdoc('numpy.core', 'ufunc', ('nargs', |
|
""" |
|
The number of arguments. |
|
|
|
Data attribute containing the number of arguments the ufunc takes, including |
|
optional ones. |
|
|
|
Notes |
|
----- |
|
Typically this value will be one more than what you might expect because all |
|
ufuncs take the optional "out" argument. |
|
|
|
Examples |
|
-------- |
|
>>> np.add.nargs |
|
3 |
|
>>> np.multiply.nargs |
|
3 |
|
>>> np.power.nargs |
|
3 |
|
>>> np.exp.nargs |
|
2 |
|
""")) |
|
|
|
add_newdoc('numpy.core', 'ufunc', ('nin', |
|
""" |
|
The number of inputs. |
|
|
|
Data attribute containing the number of arguments the ufunc treats as input. |
|
|
|
Examples |
|
-------- |
|
>>> np.add.nin |
|
2 |
|
>>> np.multiply.nin |
|
2 |
|
>>> np.power.nin |
|
2 |
|
>>> np.exp.nin |
|
1 |
|
""")) |
|
|
|
add_newdoc('numpy.core', 'ufunc', ('nout', |
|
""" |
|
The number of outputs. |
|
|
|
Data attribute containing the number of arguments the ufunc treats as output. |
|
|
|
Notes |
|
----- |
|
Since all ufuncs can take output arguments, this will always be (at least) 1. |
|
|
|
Examples |
|
-------- |
|
>>> np.add.nout |
|
1 |
|
>>> np.multiply.nout |
|
1 |
|
>>> np.power.nout |
|
1 |
|
>>> np.exp.nout |
|
1 |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core', 'ufunc', ('ntypes', |
|
""" |
|
The number of types. |
|
|
|
The number of numerical NumPy types - of which there are 18 total - on which |
|
the ufunc can operate. |
|
|
|
See Also |
|
-------- |
|
numpy.ufunc.types |
|
|
|
Examples |
|
-------- |
|
>>> np.add.ntypes |
|
18 |
|
>>> np.multiply.ntypes |
|
18 |
|
>>> np.power.ntypes |
|
17 |
|
>>> np.exp.ntypes |
|
7 |
|
>>> np.remainder.ntypes |
|
14 |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core', 'ufunc', ('types', |
|
""" |
|
Returns a list with types grouped input->output. |
|
|
|
Data attribute listing the data-type "Domain-Range" groupings the ufunc can |
|
deliver. The data-types are given using the character codes. |
|
|
|
See Also |
|
-------- |
|
numpy.ufunc.ntypes |
|
|
|
Examples |
|
-------- |
|
>>> np.add.types |
|
['??->?', 'bb->b', 'BB->B', 'hh->h', 'HH->H', 'ii->i', 'II->I', 'll->l', |
|
'LL->L', 'qq->q', 'QQ->Q', 'ff->f', 'dd->d', 'gg->g', 'FF->F', 'DD->D', |
|
'GG->G', 'OO->O'] |
|
|
|
>>> np.multiply.types |
|
['??->?', 'bb->b', 'BB->B', 'hh->h', 'HH->H', 'ii->i', 'II->I', 'll->l', |
|
'LL->L', 'qq->q', 'QQ->Q', 'ff->f', 'dd->d', 'gg->g', 'FF->F', 'DD->D', |
|
'GG->G', 'OO->O'] |
|
|
|
>>> np.power.types |
|
['bb->b', 'BB->B', 'hh->h', 'HH->H', 'ii->i', 'II->I', 'll->l', 'LL->L', |
|
'qq->q', 'QQ->Q', 'ff->f', 'dd->d', 'gg->g', 'FF->F', 'DD->D', 'GG->G', |
|
'OO->O'] |
|
|
|
>>> np.exp.types |
|
['f->f', 'd->d', 'g->g', 'F->F', 'D->D', 'G->G', 'O->O'] |
|
|
|
>>> np.remainder.types |
|
['bb->b', 'BB->B', 'hh->h', 'HH->H', 'ii->i', 'II->I', 'll->l', 'LL->L', |
|
'qq->q', 'QQ->Q', 'ff->f', 'dd->d', 'gg->g', 'OO->O'] |
|
|
|
""")) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
add_newdoc('numpy.core', 'ufunc', ('reduce', |
|
""" |
|
reduce(a, axis=0, dtype=None, out=None, keepdims=False) |
|
|
|
Reduces `a`'s dimension by one, by applying ufunc along one axis. |
|
|
|
Let :math:`a.shape = (N_0, ..., N_i, ..., N_{M-1})`. Then |
|
:math:`ufunc.reduce(a, axis=i)[k_0, ..,k_{i-1}, k_{i+1}, .., k_{M-1}]` = |
|
the result of iterating `j` over :math:`range(N_i)`, cumulatively applying |
|
ufunc to each :math:`a[k_0, ..,k_{i-1}, j, k_{i+1}, .., k_{M-1}]`. |
|
For a one-dimensional array, reduce produces results equivalent to: |
|
:: |
|
|
|
r = op.identity # op = ufunc |
|
for i in range(len(A)): |
|
r = op(r, A[i]) |
|
return r |
|
|
|
For example, add.reduce() is equivalent to sum(). |
|
|
|
Parameters |
|
---------- |
|
a : array_like |
|
The array to act on. |
|
axis : None or int or tuple of ints, optional |
|
Axis or axes along which a reduction is performed. |
|
The default (`axis` = 0) is perform a reduction over the first |
|
dimension of the input array. `axis` may be negative, in |
|
which case it counts from the last to the first axis. |
|
|
|
.. versionadded:: 1.7.0 |
|
|
|
If this is `None`, a reduction is performed over all the axes. |
|
If this is a tuple of ints, a reduction is performed on multiple |
|
axes, instead of a single axis or all the axes as before. |
|
|
|
For operations which are either not commutative or not associative, |
|
doing a reduction over multiple axes is not well-defined. The |
|
ufuncs do not currently raise an exception in this case, but will |
|
likely do so in the future. |
|
dtype : data-type code, optional |
|
The type used to represent the intermediate results. Defaults |
|
to the data-type of the output array if this is provided, or |
|
the data-type of the input array if no output array is provided. |
|
out : ndarray, optional |
|
A location into which the result is stored. If not provided, a |
|
freshly-allocated array is returned. |
|
keepdims : bool, optional |
|
If this is set to True, the axes which are reduced are left |
|
in the result as dimensions with size one. With this option, |
|
the result will broadcast correctly against the original `arr`. |
|
|
|
.. versionadded:: 1.7.0 |
|
|
|
Returns |
|
------- |
|
r : ndarray |
|
The reduced array. If `out` was supplied, `r` is a reference to it. |
|
|
|
Examples |
|
-------- |
|
>>> np.multiply.reduce([2,3,5]) |
|
30 |
|
|
|
A multi-dimensional array example: |
|
|
|
>>> X = np.arange(8).reshape((2,2,2)) |
|
>>> X |
|
array([[[0, 1], |
|
[2, 3]], |
|
[[4, 5], |
|
[6, 7]]]) |
|
>>> np.add.reduce(X, 0) |
|
array([[ 4, 6], |
|
[ 8, 10]]) |
|
>>> np.add.reduce(X) # confirm: default axis value is 0 |
|
array([[ 4, 6], |
|
[ 8, 10]]) |
|
>>> np.add.reduce(X, 1) |
|
array([[ 2, 4], |
|
[10, 12]]) |
|
>>> np.add.reduce(X, 2) |
|
array([[ 1, 5], |
|
[ 9, 13]]) |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core', 'ufunc', ('accumulate', |
|
""" |
|
accumulate(array, axis=0, dtype=None, out=None) |
|
|
|
Accumulate the result of applying the operator to all elements. |
|
|
|
For a one-dimensional array, accumulate produces results equivalent to:: |
|
|
|
r = np.empty(len(A)) |
|
t = op.identity # op = the ufunc being applied to A's elements |
|
for i in range(len(A)): |
|
t = op(t, A[i]) |
|
r[i] = t |
|
return r |
|
|
|
For example, add.accumulate() is equivalent to np.cumsum(). |
|
|
|
For a multi-dimensional array, accumulate is applied along only one |
|
axis (axis zero by default; see Examples below) so repeated use is |
|
necessary if one wants to accumulate over multiple axes. |
|
|
|
Parameters |
|
---------- |
|
array : array_like |
|
The array to act on. |
|
axis : int, optional |
|
The axis along which to apply the accumulation; default is zero. |
|
dtype : data-type code, optional |
|
The data-type used to represent the intermediate results. Defaults |
|
to the data-type of the output array if such is provided, or the |
|
the data-type of the input array if no output array is provided. |
|
out : ndarray, optional |
|
A location into which the result is stored. If not provided a |
|
freshly-allocated array is returned. |
|
|
|
Returns |
|
------- |
|
r : ndarray |
|
The accumulated values. If `out` was supplied, `r` is a reference to |
|
`out`. |
|
|
|
Examples |
|
-------- |
|
1-D array examples: |
|
|
|
>>> np.add.accumulate([2, 3, 5]) |
|
array([ 2, 5, 10]) |
|
>>> np.multiply.accumulate([2, 3, 5]) |
|
array([ 2, 6, 30]) |
|
|
|
2-D array examples: |
|
|
|
>>> I = np.eye(2) |
|
>>> I |
|
array([[ 1., 0.], |
|
[ 0., 1.]]) |
|
|
|
Accumulate along axis 0 (rows), down columns: |
|
|
|
>>> np.add.accumulate(I, 0) |
|
array([[ 1., 0.], |
|
[ 1., 1.]]) |
|
>>> np.add.accumulate(I) # no axis specified = axis zero |
|
array([[ 1., 0.], |
|
[ 1., 1.]]) |
|
|
|
Accumulate along axis 1 (columns), through rows: |
|
|
|
>>> np.add.accumulate(I, 1) |
|
array([[ 1., 1.], |
|
[ 0., 1.]]) |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core', 'ufunc', ('reduceat', |
|
""" |
|
reduceat(a, indices, axis=0, dtype=None, out=None) |
|
|
|
Performs a (local) reduce with specified slices over a single axis. |
|
|
|
For i in ``range(len(indices))``, `reduceat` computes |
|
``ufunc.reduce(a[indices[i]:indices[i+1]])``, which becomes the i-th |
|
generalized "row" parallel to `axis` in the final result (i.e., in a |
|
2-D array, for example, if `axis = 0`, it becomes the i-th row, but if |
|
`axis = 1`, it becomes the i-th column). There are three exceptions to this: |
|
|
|
* when ``i = len(indices) - 1`` (so for the last index), |
|
``indices[i+1] = a.shape[axis]``. |
|
* if ``indices[i] >= indices[i + 1]``, the i-th generalized "row" is |
|
simply ``a[indices[i]]``. |
|
* if ``indices[i] >= len(a)`` or ``indices[i] < 0``, an error is raised. |
|
|
|
The shape of the output depends on the size of `indices`, and may be |
|
larger than `a` (this happens if ``len(indices) > a.shape[axis]``). |
|
|
|
Parameters |
|
---------- |
|
a : array_like |
|
The array to act on. |
|
indices : array_like |
|
Paired indices, comma separated (not colon), specifying slices to |
|
reduce. |
|
axis : int, optional |
|
The axis along which to apply the reduceat. |
|
dtype : data-type code, optional |
|
The type used to represent the intermediate results. Defaults |
|
to the data type of the output array if this is provided, or |
|
the data type of the input array if no output array is provided. |
|
out : ndarray, optional |
|
A location into which the result is stored. If not provided a |
|
freshly-allocated array is returned. |
|
|
|
Returns |
|
------- |
|
r : ndarray |
|
The reduced values. If `out` was supplied, `r` is a reference to |
|
`out`. |
|
|
|
Notes |
|
----- |
|
A descriptive example: |
|
|
|
If `a` is 1-D, the function `ufunc.accumulate(a)` is the same as |
|
``ufunc.reduceat(a, indices)[::2]`` where `indices` is |
|
``range(len(array) - 1)`` with a zero placed |
|
in every other element: |
|
``indices = zeros(2 * len(a) - 1)``, ``indices[1::2] = range(1, len(a))``. |
|
|
|
Don't be fooled by this attribute's name: `reduceat(a)` is not |
|
necessarily smaller than `a`. |
|
|
|
Examples |
|
-------- |
|
To take the running sum of four successive values: |
|
|
|
>>> np.add.reduceat(np.arange(8),[0,4, 1,5, 2,6, 3,7])[::2] |
|
array([ 6, 10, 14, 18]) |
|
|
|
A 2-D example: |
|
|
|
>>> x = np.linspace(0, 15, 16).reshape(4,4) |
|
>>> x |
|
array([[ 0., 1., 2., 3.], |
|
[ 4., 5., 6., 7.], |
|
[ 8., 9., 10., 11.], |
|
[ 12., 13., 14., 15.]]) |
|
|
|
:: |
|
|
|
# reduce such that the result has the following five rows: |
|
# [row1 + row2 + row3] |
|
# [row4] |
|
# [row2] |
|
# [row3] |
|
# [row1 + row2 + row3 + row4] |
|
|
|
>>> np.add.reduceat(x, [0, 3, 1, 2, 0]) |
|
array([[ 12., 15., 18., 21.], |
|
[ 12., 13., 14., 15.], |
|
[ 4., 5., 6., 7.], |
|
[ 8., 9., 10., 11.], |
|
[ 24., 28., 32., 36.]]) |
|
|
|
:: |
|
|
|
# reduce such that result has the following two columns: |
|
# [col1 * col2 * col3, col4] |
|
|
|
>>> np.multiply.reduceat(x, [0, 3], 1) |
|
array([[ 0., 3.], |
|
[ 120., 7.], |
|
[ 720., 11.], |
|
[ 2184., 15.]]) |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core', 'ufunc', ('outer', |
|
""" |
|
outer(A, B) |
|
|
|
Apply the ufunc `op` to all pairs (a, b) with a in `A` and b in `B`. |
|
|
|
Let ``M = A.ndim``, ``N = B.ndim``. Then the result, `C`, of |
|
``op.outer(A, B)`` is an array of dimension M + N such that: |
|
|
|
.. math:: C[i_0, ..., i_{M-1}, j_0, ..., j_{N-1}] = |
|
op(A[i_0, ..., i_{M-1}], B[j_0, ..., j_{N-1}]) |
|
|
|
For `A` and `B` one-dimensional, this is equivalent to:: |
|
|
|
r = empty(len(A),len(B)) |
|
for i in range(len(A)): |
|
for j in range(len(B)): |
|
r[i,j] = op(A[i], B[j]) # op = ufunc in question |
|
|
|
Parameters |
|
---------- |
|
A : array_like |
|
First array |
|
B : array_like |
|
Second array |
|
|
|
Returns |
|
------- |
|
r : ndarray |
|
Output array |
|
|
|
See Also |
|
-------- |
|
numpy.outer |
|
|
|
Examples |
|
-------- |
|
>>> np.multiply.outer([1, 2, 3], [4, 5, 6]) |
|
array([[ 4, 5, 6], |
|
[ 8, 10, 12], |
|
[12, 15, 18]]) |
|
|
|
A multi-dimensional example: |
|
|
|
>>> A = np.array([[1, 2, 3], [4, 5, 6]]) |
|
>>> A.shape |
|
(2, 3) |
|
>>> B = np.array([[1, 2, 3, 4]]) |
|
>>> B.shape |
|
(1, 4) |
|
>>> C = np.multiply.outer(A, B) |
|
>>> C.shape; C |
|
(2, 3, 1, 4) |
|
array([[[[ 1, 2, 3, 4]], |
|
[[ 2, 4, 6, 8]], |
|
[[ 3, 6, 9, 12]]], |
|
[[[ 4, 8, 12, 16]], |
|
[[ 5, 10, 15, 20]], |
|
[[ 6, 12, 18, 24]]]]) |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core', 'ufunc', ('at', |
|
""" |
|
at(a, indices, b=None) |
|
|
|
Performs unbuffered in place operation on operand 'a' for elements |
|
specified by 'indices'. For addition ufunc, this method is equivalent to |
|
`a[indices] += b`, except that results are accumulated for elements that |
|
are indexed more than once. For example, `a[[0,0]] += 1` will only |
|
increment the first element once because of buffering, whereas |
|
`add.at(a, [0,0], 1)` will increment the first element twice. |
|
|
|
.. versionadded:: 1.8.0 |
|
|
|
Parameters |
|
---------- |
|
a : array_like |
|
The array to perform in place operation on. |
|
indices : array_like or tuple |
|
Array like index object or slice object for indexing into first |
|
operand. If first operand has multiple dimensions, indices can be a |
|
tuple of array like index objects or slice objects. |
|
b : array_like |
|
Second operand for ufuncs requiring two operands. Operand must be |
|
broadcastable over first operand after indexing or slicing. |
|
|
|
Examples |
|
-------- |
|
Set items 0 and 1 to their negative values: |
|
|
|
>>> a = np.array([1, 2, 3, 4]) |
|
>>> np.negative.at(a, [0, 1]) |
|
>>> print(a) |
|
array([-1, -2, 3, 4]) |
|
|
|
:: |
|
|
|
Increment items 0 and 1, and increment item 2 twice: |
|
|
|
>>> a = np.array([1, 2, 3, 4]) |
|
>>> np.add.at(a, [0, 1, 2, 2], 1) |
|
>>> print(a) |
|
array([2, 3, 5, 4]) |
|
|
|
:: |
|
|
|
Add items 0 and 1 in first array to second array, |
|
and store results in first array: |
|
|
|
>>> a = np.array([1, 2, 3, 4]) |
|
>>> b = np.array([1, 2]) |
|
>>> np.add.at(a, [0, 1], b) |
|
>>> print(a) |
|
array([2, 4, 3, 4]) |
|
|
|
""")) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'dtype', |
|
""" |
|
dtype(obj, align=False, copy=False) |
|
|
|
Create a data type object. |
|
|
|
A numpy array is homogeneous, and contains elements described by a |
|
dtype object. A dtype object can be constructed from different |
|
combinations of fundamental numeric types. |
|
|
|
Parameters |
|
---------- |
|
obj |
|
Object to be converted to a data type object. |
|
align : bool, optional |
|
Add padding to the fields to match what a C compiler would output |
|
for a similar C-struct. Can be ``True`` only if `obj` is a dictionary |
|
or a comma-separated string. If a struct dtype is being created, |
|
this also sets a sticky alignment flag ``isalignedstruct``. |
|
copy : bool, optional |
|
Make a new copy of the data-type object. If ``False``, the result |
|
may just be a reference to a built-in data-type object. |
|
|
|
See also |
|
-------- |
|
result_type |
|
|
|
Examples |
|
-------- |
|
Using array-scalar type: |
|
|
|
>>> np.dtype(np.int16) |
|
dtype('int16') |
|
|
|
Record, one field name 'f1', containing int16: |
|
|
|
>>> np.dtype([('f1', np.int16)]) |
|
dtype([('f1', '<i2')]) |
|
|
|
Record, one field named 'f1', in itself containing a record with one field: |
|
|
|
>>> np.dtype([('f1', [('f1', np.int16)])]) |
|
dtype([('f1', [('f1', '<i2')])]) |
|
|
|
Record, two fields: the first field contains an unsigned int, the |
|
second an int32: |
|
|
|
>>> np.dtype([('f1', np.uint), ('f2', np.int32)]) |
|
dtype([('f1', '<u4'), ('f2', '<i4')]) |
|
|
|
Using array-protocol type strings: |
|
|
|
>>> np.dtype([('a','f8'),('b','S10')]) |
|
dtype([('a', '<f8'), ('b', '|S10')]) |
|
|
|
Using comma-separated field formats. The shape is (2,3): |
|
|
|
>>> np.dtype("i4, (2,3)f8") |
|
dtype([('f0', '<i4'), ('f1', '<f8', (2, 3))]) |
|
|
|
Using tuples. ``int`` is a fixed type, 3 the field's shape. ``void`` |
|
is a flexible type, here of size 10: |
|
|
|
>>> np.dtype([('hello',(np.int,3)),('world',np.void,10)]) |
|
dtype([('hello', '<i4', 3), ('world', '|V10')]) |
|
|
|
Subdivide ``int16`` into 2 ``int8``'s, called x and y. 0 and 1 are |
|
the offsets in bytes: |
|
|
|
>>> np.dtype((np.int16, {'x':(np.int8,0), 'y':(np.int8,1)})) |
|
dtype(('<i2', [('x', '|i1'), ('y', '|i1')])) |
|
|
|
Using dictionaries. Two fields named 'gender' and 'age': |
|
|
|
>>> np.dtype({'names':['gender','age'], 'formats':['S1',np.uint8]}) |
|
dtype([('gender', '|S1'), ('age', '|u1')]) |
|
|
|
Offsets in bytes, here 0 and 25: |
|
|
|
>>> np.dtype({'surname':('S25',0),'age':(np.uint8,25)}) |
|
dtype([('surname', '|S25'), ('age', '|u1')]) |
|
|
|
""") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'dtype', ('alignment', |
|
""" |
|
The required alignment (bytes) of this data-type according to the compiler. |
|
|
|
More information is available in the C-API section of the manual. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.multiarray', 'dtype', ('byteorder', |
|
""" |
|
A character indicating the byte-order of this data-type object. |
|
|
|
One of: |
|
|
|
=== ============== |
|
'=' native |
|
'<' little-endian |
|
'>' big-endian |
|
'|' not applicable |
|
=== ============== |
|
|
|
All built-in data-type objects have byteorder either '=' or '|'. |
|
|
|
Examples |
|
-------- |
|
|
|
>>> dt = np.dtype('i2') |
|
>>> dt.byteorder |
|
'=' |
|
>>> # endian is not relevant for 8 bit numbers |
|
>>> np.dtype('i1').byteorder |
|
'|' |
|
>>> # or ASCII strings |
|
>>> np.dtype('S2').byteorder |
|
'|' |
|
>>> # Even if specific code is given, and it is native |
|
>>> # '=' is the byteorder |
|
>>> import sys |
|
>>> sys_is_le = sys.byteorder == 'little' |
|
>>> native_code = sys_is_le and '<' or '>' |
|
>>> swapped_code = sys_is_le and '>' or '<' |
|
>>> dt = np.dtype(native_code + 'i2') |
|
>>> dt.byteorder |
|
'=' |
|
>>> # Swapped code shows up as itself |
|
>>> dt = np.dtype(swapped_code + 'i2') |
|
>>> dt.byteorder == swapped_code |
|
True |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.multiarray', 'dtype', ('char', |
|
"""A unique character code for each of the 21 different built-in types.""")) |
|
|
|
add_newdoc('numpy.core.multiarray', 'dtype', ('descr', |
|
""" |
|
Array-interface compliant full description of the data-type. |
|
|
|
The format is that required by the 'descr' key in the |
|
`__array_interface__` attribute. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.multiarray', 'dtype', ('fields', |
|
""" |
|
Dictionary of named fields defined for this data type, or ``None``. |
|
|
|
The dictionary is indexed by keys that are the names of the fields. |
|
Each entry in the dictionary is a tuple fully describing the field:: |
|
|
|
(dtype, offset[, title]) |
|
|
|
If present, the optional title can be any object (if it is a string |
|
or unicode then it will also be a key in the fields dictionary, |
|
otherwise it's meta-data). Notice also that the first two elements |
|
of the tuple can be passed directly as arguments to the ``ndarray.getfield`` |
|
and ``ndarray.setfield`` methods. |
|
|
|
See Also |
|
-------- |
|
ndarray.getfield, ndarray.setfield |
|
|
|
Examples |
|
-------- |
|
>>> dt = np.dtype([('name', np.str_, 16), ('grades', np.float64, (2,))]) |
|
>>> print dt.fields |
|
{'grades': (dtype(('float64',(2,))), 16), 'name': (dtype('|S16'), 0)} |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.multiarray', 'dtype', ('flags', |
|
""" |
|
Bit-flags describing how this data type is to be interpreted. |
|
|
|
Bit-masks are in `numpy.core.multiarray` as the constants |
|
`ITEM_HASOBJECT`, `LIST_PICKLE`, `ITEM_IS_POINTER`, `NEEDS_INIT`, |
|
`NEEDS_PYAPI`, `USE_GETITEM`, `USE_SETITEM`. A full explanation |
|
of these flags is in C-API documentation; they are largely useful |
|
for user-defined data-types. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.multiarray', 'dtype', ('hasobject', |
|
""" |
|
Boolean indicating whether this dtype contains any reference-counted |
|
objects in any fields or sub-dtypes. |
|
|
|
Recall that what is actually in the ndarray memory representing |
|
the Python object is the memory address of that object (a pointer). |
|
Special handling may be required, and this attribute is useful for |
|
distinguishing data types that may contain arbitrary Python objects |
|
and data-types that won't. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.multiarray', 'dtype', ('isbuiltin', |
|
""" |
|
Integer indicating how this dtype relates to the built-in dtypes. |
|
|
|
Read-only. |
|
|
|
= ======================================================================== |
|
0 if this is a structured array type, with fields |
|
1 if this is a dtype compiled into numpy (such as ints, floats etc) |
|
2 if the dtype is for a user-defined numpy type |
|
A user-defined type uses the numpy C-API machinery to extend |
|
numpy to handle a new array type. See |
|
:ref:`user.user-defined-data-types` in the Numpy manual. |
|
= ======================================================================== |
|
|
|
Examples |
|
-------- |
|
>>> dt = np.dtype('i2') |
|
>>> dt.isbuiltin |
|
1 |
|
>>> dt = np.dtype('f8') |
|
>>> dt.isbuiltin |
|
1 |
|
>>> dt = np.dtype([('field1', 'f8')]) |
|
>>> dt.isbuiltin |
|
0 |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.multiarray', 'dtype', ('isnative', |
|
""" |
|
Boolean indicating whether the byte order of this dtype is native |
|
to the platform. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.multiarray', 'dtype', ('isalignedstruct', |
|
""" |
|
Boolean indicating whether the dtype is a struct which maintains |
|
field alignment. This flag is sticky, so when combining multiple |
|
structs together, it is preserved and produces new dtypes which |
|
are also aligned. |
|
""")) |
|
|
|
add_newdoc('numpy.core.multiarray', 'dtype', ('itemsize', |
|
""" |
|
The element size of this data-type object. |
|
|
|
For 18 of the 21 types this number is fixed by the data-type. |
|
For the flexible data-types, this number can be anything. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.multiarray', 'dtype', ('kind', |
|
""" |
|
A character code (one of 'biufcOSUV') identifying the general kind of data. |
|
|
|
= ====================== |
|
b boolean |
|
i signed integer |
|
u unsigned integer |
|
f floating-point |
|
c complex floating-point |
|
O object |
|
S (byte-)string |
|
U Unicode |
|
V void |
|
= ====================== |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.multiarray', 'dtype', ('name', |
|
""" |
|
A bit-width name for this data-type. |
|
|
|
Un-sized flexible data-type objects do not have this attribute. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.multiarray', 'dtype', ('names', |
|
""" |
|
Ordered list of field names, or ``None`` if there are no fields. |
|
|
|
The names are ordered according to increasing byte offset. This can be |
|
used, for example, to walk through all of the named fields in offset order. |
|
|
|
Examples |
|
-------- |
|
>>> dt = np.dtype([('name', np.str_, 16), ('grades', np.float64, (2,))]) |
|
>>> dt.names |
|
('name', 'grades') |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.multiarray', 'dtype', ('num', |
|
""" |
|
A unique number for each of the 21 different built-in types. |
|
|
|
These are roughly ordered from least-to-most precision. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.multiarray', 'dtype', ('shape', |
|
""" |
|
Shape tuple of the sub-array if this data type describes a sub-array, |
|
and ``()`` otherwise. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.multiarray', 'dtype', ('str', |
|
"""The array-protocol typestring of this data-type object.""")) |
|
|
|
add_newdoc('numpy.core.multiarray', 'dtype', ('subdtype', |
|
""" |
|
Tuple ``(item_dtype, shape)`` if this `dtype` describes a sub-array, and |
|
None otherwise. |
|
|
|
The *shape* is the fixed shape of the sub-array described by this |
|
data type, and *item_dtype* the data type of the array. |
|
|
|
If a field whose dtype object has this attribute is retrieved, |
|
then the extra dimensions implied by *shape* are tacked on to |
|
the end of the retrieved array. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.multiarray', 'dtype', ('type', |
|
"""The type object used to instantiate a scalar of this data-type.""")) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'dtype', ('newbyteorder', |
|
""" |
|
newbyteorder(new_order='S') |
|
|
|
Return a new dtype with a different byte order. |
|
|
|
Changes are also made in all fields and sub-arrays of the data type. |
|
|
|
Parameters |
|
---------- |
|
new_order : string, optional |
|
Byte order to force; a value from the byte order |
|
specifications below. The default value ('S') results in |
|
swapping the current byte order. |
|
`new_order` codes can be any of:: |
|
|
|
* 'S' - swap dtype from current to opposite endian |
|
* {'<', 'L'} - little endian |
|
* {'>', 'B'} - big endian |
|
* {'=', 'N'} - native order |
|
* {'|', 'I'} - ignore (no change to byte order) |
|
|
|
The code does a case-insensitive check on the first letter of |
|
`new_order` for these alternatives. For example, any of '>' |
|
or 'B' or 'b' or 'brian' are valid to specify big-endian. |
|
|
|
Returns |
|
------- |
|
new_dtype : dtype |
|
New dtype object with the given change to the byte order. |
|
|
|
Notes |
|
----- |
|
Changes are also made in all fields and sub-arrays of the data type. |
|
|
|
Examples |
|
-------- |
|
>>> import sys |
|
>>> sys_is_le = sys.byteorder == 'little' |
|
>>> native_code = sys_is_le and '<' or '>' |
|
>>> swapped_code = sys_is_le and '>' or '<' |
|
>>> native_dt = np.dtype(native_code+'i2') |
|
>>> swapped_dt = np.dtype(swapped_code+'i2') |
|
>>> native_dt.newbyteorder('S') == swapped_dt |
|
True |
|
>>> native_dt.newbyteorder() == swapped_dt |
|
True |
|
>>> native_dt == swapped_dt.newbyteorder('S') |
|
True |
|
>>> native_dt == swapped_dt.newbyteorder('=') |
|
True |
|
>>> native_dt == swapped_dt.newbyteorder('N') |
|
True |
|
>>> native_dt == native_dt.newbyteorder('|') |
|
True |
|
>>> np.dtype('<i2') == native_dt.newbyteorder('<') |
|
True |
|
>>> np.dtype('<i2') == native_dt.newbyteorder('L') |
|
True |
|
>>> np.dtype('>i2') == native_dt.newbyteorder('>') |
|
True |
|
>>> np.dtype('>i2') == native_dt.newbyteorder('B') |
|
True |
|
|
|
""")) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
add_newdoc('numpy.core.multiarray', 'busdaycalendar', |
|
""" |
|
busdaycalendar(weekmask='1111100', holidays=None) |
|
|
|
A business day calendar object that efficiently stores information |
|
defining valid days for the busday family of functions. |
|
|
|
The default valid days are Monday through Friday ("business days"). |
|
A busdaycalendar object can be specified with any set of weekly |
|
valid days, plus an optional "holiday" dates that always will be invalid. |
|
|
|
Once a busdaycalendar object is created, the weekmask and holidays |
|
cannot be modified. |
|
|
|
.. versionadded:: 1.7.0 |
|
|
|
Parameters |
|
---------- |
|
weekmask : str or array_like of bool, optional |
|
A seven-element array indicating which of Monday through Sunday are |
|
valid days. May be specified as a length-seven list or array, like |
|
[1,1,1,1,1,0,0]; a length-seven string, like '1111100'; or a string |
|
like "Mon Tue Wed Thu Fri", made up of 3-character abbreviations for |
|
weekdays, optionally separated by white space. Valid abbreviations |
|
are: Mon Tue Wed Thu Fri Sat Sun |
|
holidays : array_like of datetime64[D], optional |
|
An array of dates to consider as invalid dates, no matter which |
|
weekday they fall upon. Holiday dates may be specified in any |
|
order, and NaT (not-a-time) dates are ignored. This list is |
|
saved in a normalized form that is suited for fast calculations |
|
of valid days. |
|
|
|
Returns |
|
------- |
|
out : busdaycalendar |
|
A business day calendar object containing the specified |
|
weekmask and holidays values. |
|
|
|
See Also |
|
-------- |
|
is_busday : Returns a boolean array indicating valid days. |
|
busday_offset : Applies an offset counted in valid days. |
|
busday_count : Counts how many valid days are in a half-open date range. |
|
|
|
Attributes |
|
---------- |
|
Note: once a busdaycalendar object is created, you cannot modify the |
|
weekmask or holidays. The attributes return copies of internal data. |
|
weekmask : (copy) seven-element array of bool |
|
holidays : (copy) sorted array of datetime64[D] |
|
|
|
Examples |
|
-------- |
|
>>> # Some important days in July |
|
... bdd = np.busdaycalendar( |
|
... holidays=['2011-07-01', '2011-07-04', '2011-07-17']) |
|
>>> # Default is Monday to Friday weekdays |
|
... bdd.weekmask |
|
array([ True, True, True, True, True, False, False], dtype='bool') |
|
>>> # Any holidays already on the weekend are removed |
|
... bdd.holidays |
|
array(['2011-07-01', '2011-07-04'], dtype='datetime64[D]') |
|
""") |
|
|
|
add_newdoc('numpy.core.multiarray', 'busdaycalendar', ('weekmask', |
|
"""A copy of the seven-element boolean mask indicating valid days.""")) |
|
|
|
add_newdoc('numpy.core.multiarray', 'busdaycalendar', ('holidays', |
|
"""A copy of the holiday array indicating additional invalid days.""")) |
|
|
|
add_newdoc('numpy.core.multiarray', 'is_busday', |
|
""" |
|
is_busday(dates, weekmask='1111100', holidays=None, busdaycal=None, out=None) |
|
|
|
Calculates which of the given dates are valid days, and which are not. |
|
|
|
.. versionadded:: 1.7.0 |
|
|
|
Parameters |
|
---------- |
|
dates : array_like of datetime64[D] |
|
The array of dates to process. |
|
weekmask : str or array_like of bool, optional |
|
A seven-element array indicating which of Monday through Sunday are |
|
valid days. May be specified as a length-seven list or array, like |
|
[1,1,1,1,1,0,0]; a length-seven string, like '1111100'; or a string |
|
like "Mon Tue Wed Thu Fri", made up of 3-character abbreviations for |
|
weekdays, optionally separated by white space. Valid abbreviations |
|
are: Mon Tue Wed Thu Fri Sat Sun |
|
holidays : array_like of datetime64[D], optional |
|
An array of dates to consider as invalid dates. They may be |
|
specified in any order, and NaT (not-a-time) dates are ignored. |
|
This list is saved in a normalized form that is suited for |
|
fast calculations of valid days. |
|
busdaycal : busdaycalendar, optional |
|
A `busdaycalendar` object which specifies the valid days. If this |
|
parameter is provided, neither weekmask nor holidays may be |
|
provided. |
|
out : array of bool, optional |
|
If provided, this array is filled with the result. |
|
|
|
Returns |
|
------- |
|
out : array of bool |
|
An array with the same shape as ``dates``, containing True for |
|
each valid day, and False for each invalid day. |
|
|
|
See Also |
|
-------- |
|
busdaycalendar: An object that specifies a custom set of valid days. |
|
busday_offset : Applies an offset counted in valid days. |
|
busday_count : Counts how many valid days are in a half-open date range. |
|
|
|
Examples |
|
-------- |
|
>>> # The weekdays are Friday, Saturday, and Monday |
|
... np.is_busday(['2011-07-01', '2011-07-02', '2011-07-18'], |
|
... holidays=['2011-07-01', '2011-07-04', '2011-07-17']) |
|
array([False, False, True], dtype='bool') |
|
""") |
|
|
|
add_newdoc('numpy.core.multiarray', 'busday_offset', |
|
""" |
|
busday_offset(dates, offsets, roll='raise', weekmask='1111100', holidays=None, busdaycal=None, out=None) |
|
|
|
First adjusts the date to fall on a valid day according to |
|
the ``roll`` rule, then applies offsets to the given dates |
|
counted in valid days. |
|
|
|
.. versionadded:: 1.7.0 |
|
|
|
Parameters |
|
---------- |
|
dates : array_like of datetime64[D] |
|
The array of dates to process. |
|
offsets : array_like of int |
|
The array of offsets, which is broadcast with ``dates``. |
|
roll : {'raise', 'nat', 'forward', 'following', 'backward', 'preceding', 'modifiedfollowing', 'modifiedpreceding'}, optional |
|
How to treat dates that do not fall on a valid day. The default |
|
is 'raise'. |
|
|
|
* 'raise' means to raise an exception for an invalid day. |
|
* 'nat' means to return a NaT (not-a-time) for an invalid day. |
|
* 'forward' and 'following' mean to take the first valid day |
|
later in time. |
|
* 'backward' and 'preceding' mean to take the first valid day |
|
earlier in time. |
|
* 'modifiedfollowing' means to take the first valid day |
|
later in time unless it is across a Month boundary, in which |
|
case to take the first valid day earlier in time. |
|
* 'modifiedpreceding' means to take the first valid day |
|
earlier in time unless it is across a Month boundary, in which |
|
case to take the first valid day later in time. |
|
weekmask : str or array_like of bool, optional |
|
A seven-element array indicating which of Monday through Sunday are |
|
valid days. May be specified as a length-seven list or array, like |
|
[1,1,1,1,1,0,0]; a length-seven string, like '1111100'; or a string |
|
like "Mon Tue Wed Thu Fri", made up of 3-character abbreviations for |
|
weekdays, optionally separated by white space. Valid abbreviations |
|
are: Mon Tue Wed Thu Fri Sat Sun |
|
holidays : array_like of datetime64[D], optional |
|
An array of dates to consider as invalid dates. They may be |
|
specified in any order, and NaT (not-a-time) dates are ignored. |
|
This list is saved in a normalized form that is suited for |
|
fast calculations of valid days. |
|
busdaycal : busdaycalendar, optional |
|
A `busdaycalendar` object which specifies the valid days. If this |
|
parameter is provided, neither weekmask nor holidays may be |
|
provided. |
|
out : array of datetime64[D], optional |
|
If provided, this array is filled with the result. |
|
|
|
Returns |
|
------- |
|
out : array of datetime64[D] |
|
An array with a shape from broadcasting ``dates`` and ``offsets`` |
|
together, containing the dates with offsets applied. |
|
|
|
See Also |
|
-------- |
|
busdaycalendar: An object that specifies a custom set of valid days. |
|
is_busday : Returns a boolean array indicating valid days. |
|
busday_count : Counts how many valid days are in a half-open date range. |
|
|
|
Examples |
|
-------- |
|
>>> # First business day in October 2011 (not accounting for holidays) |
|
... np.busday_offset('2011-10', 0, roll='forward') |
|
numpy.datetime64('2011-10-03','D') |
|
>>> # Last business day in February 2012 (not accounting for holidays) |
|
... np.busday_offset('2012-03', -1, roll='forward') |
|
numpy.datetime64('2012-02-29','D') |
|
>>> # Third Wednesday in January 2011 |
|
... np.busday_offset('2011-01', 2, roll='forward', weekmask='Wed') |
|
numpy.datetime64('2011-01-19','D') |
|
>>> # 2012 Mother's Day in Canada and the U.S. |
|
... np.busday_offset('2012-05', 1, roll='forward', weekmask='Sun') |
|
numpy.datetime64('2012-05-13','D') |
|
|
|
>>> # First business day on or after a date |
|
... np.busday_offset('2011-03-20', 0, roll='forward') |
|
numpy.datetime64('2011-03-21','D') |
|
>>> np.busday_offset('2011-03-22', 0, roll='forward') |
|
numpy.datetime64('2011-03-22','D') |
|
>>> # First business day after a date |
|
... np.busday_offset('2011-03-20', 1, roll='backward') |
|
numpy.datetime64('2011-03-21','D') |
|
>>> np.busday_offset('2011-03-22', 1, roll='backward') |
|
numpy.datetime64('2011-03-23','D') |
|
""") |
|
|
|
add_newdoc('numpy.core.multiarray', 'busday_count', |
|
""" |
|
busday_count(begindates, enddates, weekmask='1111100', holidays=[], busdaycal=None, out=None) |
|
|
|
Counts the number of valid days between `begindates` and |
|
`enddates`, not including the day of `enddates`. |
|
|
|
If ``enddates`` specifies a date value that is earlier than the |
|
corresponding ``begindates`` date value, the count will be negative. |
|
|
|
.. versionadded:: 1.7.0 |
|
|
|
Parameters |
|
---------- |
|
begindates : array_like of datetime64[D] |
|
The array of the first dates for counting. |
|
enddates : array_like of datetime64[D] |
|
The array of the end dates for counting, which are excluded |
|
from the count themselves. |
|
weekmask : str or array_like of bool, optional |
|
A seven-element array indicating which of Monday through Sunday are |
|
valid days. May be specified as a length-seven list or array, like |
|
[1,1,1,1,1,0,0]; a length-seven string, like '1111100'; or a string |
|
like "Mon Tue Wed Thu Fri", made up of 3-character abbreviations for |
|
weekdays, optionally separated by white space. Valid abbreviations |
|
are: Mon Tue Wed Thu Fri Sat Sun |
|
holidays : array_like of datetime64[D], optional |
|
An array of dates to consider as invalid dates. They may be |
|
specified in any order, and NaT (not-a-time) dates are ignored. |
|
This list is saved in a normalized form that is suited for |
|
fast calculations of valid days. |
|
busdaycal : busdaycalendar, optional |
|
A `busdaycalendar` object which specifies the valid days. If this |
|
parameter is provided, neither weekmask nor holidays may be |
|
provided. |
|
out : array of int, optional |
|
If provided, this array is filled with the result. |
|
|
|
Returns |
|
------- |
|
out : array of int |
|
An array with a shape from broadcasting ``begindates`` and ``enddates`` |
|
together, containing the number of valid days between |
|
the begin and end dates. |
|
|
|
See Also |
|
-------- |
|
busdaycalendar: An object that specifies a custom set of valid days. |
|
is_busday : Returns a boolean array indicating valid days. |
|
busday_offset : Applies an offset counted in valid days. |
|
|
|
Examples |
|
-------- |
|
>>> # Number of weekdays in January 2011 |
|
... np.busday_count('2011-01', '2011-02') |
|
21 |
|
>>> # Number of weekdays in 2011 |
|
... np.busday_count('2011', '2012') |
|
260 |
|
>>> # Number of Saturdays in 2011 |
|
... np.busday_count('2011', '2012', weekmask='Sat') |
|
53 |
|
""") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
add_newdoc('numpy.lib.index_tricks', 'mgrid', |
|
""" |
|
`nd_grid` instance which returns a dense multi-dimensional "meshgrid". |
|
|
|
An instance of `numpy.lib.index_tricks.nd_grid` which returns an dense |
|
(or fleshed out) mesh-grid when indexed, so that each returned argument |
|
has the same shape. The dimensions and number of the output arrays are |
|
equal to the number of indexing dimensions. If the step length is not a |
|
complex number, then the stop is not inclusive. |
|
|
|
However, if the step length is a **complex number** (e.g. 5j), then |
|
the integer part of its magnitude is interpreted as specifying the |
|
number of points to create between the start and stop values, where |
|
the stop value **is inclusive**. |
|
|
|
Returns |
|
---------- |
|
mesh-grid `ndarrays` all of the same dimensions |
|
|
|
See Also |
|
-------- |
|
numpy.lib.index_tricks.nd_grid : class of `ogrid` and `mgrid` objects |
|
ogrid : like mgrid but returns open (not fleshed out) mesh grids |
|
r_ : array concatenator |
|
|
|
Examples |
|
-------- |
|
>>> np.mgrid[0:5,0:5] |
|
array([[[0, 0, 0, 0, 0], |
|
[1, 1, 1, 1, 1], |
|
[2, 2, 2, 2, 2], |
|
[3, 3, 3, 3, 3], |
|
[4, 4, 4, 4, 4]], |
|
[[0, 1, 2, 3, 4], |
|
[0, 1, 2, 3, 4], |
|
[0, 1, 2, 3, 4], |
|
[0, 1, 2, 3, 4], |
|
[0, 1, 2, 3, 4]]]) |
|
>>> np.mgrid[-1:1:5j] |
|
array([-1. , -0.5, 0. , 0.5, 1. ]) |
|
|
|
""") |
|
|
|
add_newdoc('numpy.lib.index_tricks', 'ogrid', |
|
""" |
|
`nd_grid` instance which returns an open multi-dimensional "meshgrid". |
|
|
|
An instance of `numpy.lib.index_tricks.nd_grid` which returns an open |
|
(i.e. not fleshed out) mesh-grid when indexed, so that only one dimension |
|
of each returned array is greater than 1. The dimension and number of the |
|
output arrays are equal to the number of indexing dimensions. If the step |
|
length is not a complex number, then the stop is not inclusive. |
|
|
|
However, if the step length is a **complex number** (e.g. 5j), then |
|
the integer part of its magnitude is interpreted as specifying the |
|
number of points to create between the start and stop values, where |
|
the stop value **is inclusive**. |
|
|
|
Returns |
|
---------- |
|
mesh-grid `ndarrays` with only one dimension :math:`\\neq 1` |
|
|
|
See Also |
|
-------- |
|
np.lib.index_tricks.nd_grid : class of `ogrid` and `mgrid` objects |
|
mgrid : like `ogrid` but returns dense (or fleshed out) mesh grids |
|
r_ : array concatenator |
|
|
|
Examples |
|
-------- |
|
>>> from numpy import ogrid |
|
>>> ogrid[-1:1:5j] |
|
array([-1. , -0.5, 0. , 0.5, 1. ]) |
|
>>> ogrid[0:5,0:5] |
|
[array([[0], |
|
[1], |
|
[2], |
|
[3], |
|
[4]]), array([[0, 1, 2, 3, 4]])] |
|
|
|
""") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', |
|
""" |
|
Base class for numpy scalar types. |
|
|
|
Class from which most (all?) numpy scalar types are derived. For |
|
consistency, exposes the same API as `ndarray`, despite many |
|
consequent attributes being either "get-only," or completely irrelevant. |
|
This is the class from which it is strongly suggested users should derive |
|
custom scalar types. |
|
|
|
""") |
|
|
|
|
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('T', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class so as to |
|
provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('base', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class so as to |
|
a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('data', |
|
"""Pointer to start of data.""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('dtype', |
|
"""Get array data-descriptor.""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('flags', |
|
"""The integer value of flags.""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('flat', |
|
"""A 1-D view of the scalar.""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('imag', |
|
"""The imaginary part of the scalar.""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('itemsize', |
|
"""The length of one element in bytes.""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('nbytes', |
|
"""The length of the scalar in bytes.""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('ndim', |
|
"""The number of array dimensions.""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('real', |
|
"""The real part of the scalar.""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('shape', |
|
"""Tuple of array dimensions.""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('size', |
|
"""The number of elements in the gentype.""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('strides', |
|
"""Tuple of bytes steps in each dimension.""")) |
|
|
|
|
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('all', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('any', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('argmax', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('argmin', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('argsort', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('astype', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('byteswap', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class so as to |
|
provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('choose', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('clip', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('compress', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('conjugate', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('copy', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('cumprod', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('cumsum', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('diagonal', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('dump', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('dumps', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('fill', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('flatten', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('getfield', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('item', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('itemset', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('max', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('mean', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('min', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('newbyteorder', |
|
""" |
|
newbyteorder(new_order='S') |
|
|
|
Return a new `dtype` with a different byte order. |
|
|
|
Changes are also made in all fields and sub-arrays of the data type. |
|
|
|
The `new_order` code can be any from the following: |
|
|
|
* {'<', 'L'} - little endian |
|
* {'>', 'B'} - big endian |
|
* {'=', 'N'} - native order |
|
* 'S' - swap dtype from current to opposite endian |
|
* {'|', 'I'} - ignore (no change to byte order) |
|
|
|
Parameters |
|
---------- |
|
new_order : str, optional |
|
Byte order to force; a value from the byte order specifications |
|
above. The default value ('S') results in swapping the current |
|
byte order. The code does a case-insensitive check on the first |
|
letter of `new_order` for the alternatives above. For example, |
|
any of 'B' or 'b' or 'biggish' are valid to specify big-endian. |
|
|
|
|
|
Returns |
|
------- |
|
new_dtype : dtype |
|
New `dtype` object with the given change to the byte order. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('nonzero', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('prod', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('ptp', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('put', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('ravel', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('repeat', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('reshape', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('resize', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('round', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('searchsorted', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('setfield', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('setflags', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class so as to |
|
provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('sort', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('squeeze', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('std', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('sum', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('swapaxes', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('take', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('tofile', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('tolist', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('tostring', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('trace', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('transpose', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('var', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
add_newdoc('numpy.core.numerictypes', 'generic', ('view', |
|
""" |
|
Not implemented (virtual attribute) |
|
|
|
Class generic exists solely to derive numpy scalars from, and possesses, |
|
albeit unimplemented, all the attributes of the ndarray class |
|
so as to provide a uniform API. |
|
|
|
See Also |
|
-------- |
|
The corresponding attribute of the derived class of interest. |
|
|
|
""")) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
add_newdoc('numpy.core.numerictypes', 'bool_', |
|
"""Numpy's Boolean type. Character code: ``?``. Alias: bool8""") |
|
|
|
add_newdoc('numpy.core.numerictypes', 'complex64', |
|
""" |
|
Complex number type composed of two 32 bit floats. Character code: 'F'. |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core.numerictypes', 'complex128', |
|
""" |
|
Complex number type composed of two 64 bit floats. Character code: 'D'. |
|
Python complex compatible. |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core.numerictypes', 'complex256', |
|
""" |
|
Complex number type composed of two 128-bit floats. Character code: 'G'. |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core.numerictypes', 'float32', |
|
""" |
|
32-bit floating-point number. Character code 'f'. C float compatible. |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core.numerictypes', 'float64', |
|
""" |
|
64-bit floating-point number. Character code 'd'. Python float compatible. |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core.numerictypes', 'float96', |
|
""" |
|
""") |
|
|
|
add_newdoc('numpy.core.numerictypes', 'float128', |
|
""" |
|
128-bit floating-point number. Character code: 'g'. C long float |
|
compatible. |
|
|
|
""") |
|
|
|
add_newdoc('numpy.core.numerictypes', 'int8', |
|
"""8-bit integer. Character code ``b``. C char compatible.""") |
|
|
|
add_newdoc('numpy.core.numerictypes', 'int16', |
|
"""16-bit integer. Character code ``h``. C short compatible.""") |
|
|
|
add_newdoc('numpy.core.numerictypes', 'int32', |
|
"""32-bit integer. Character code 'i'. C int compatible.""") |
|
|
|
add_newdoc('numpy.core.numerictypes', 'int64', |
|
"""64-bit integer. Character code 'l'. Python int compatible.""") |
|
|
|
add_newdoc('numpy.core.numerictypes', 'object_', |
|
"""Any Python object. Character code: 'O'.""") |
|
|