summaryrefslogtreecommitdiff
path: root/numpy/add_newdocs.py
diff options
context:
space:
mode:
Diffstat (limited to 'numpy/add_newdocs.py')
-rw-r--r--numpy/add_newdocs.py2817
1 files changed, 2817 insertions, 0 deletions
diff --git a/numpy/add_newdocs.py b/numpy/add_newdocs.py
new file mode 100644
index 000000000..cff9e5e03
--- /dev/null
+++ b/numpy/add_newdocs.py
@@ -0,0 +1,2817 @@
+# 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 lib import add_newdoc
+
+add_newdoc('numpy.core', 'dtype',
+"""Create a data type.
+
+A numpy array is homogeneous, and contains elements described by a
+dtype. A dtype can be constructed from different combinations of
+fundamental numeric types, as illustrated below.
+
+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', '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.
+ 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.
+
+ 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')])
+
+ """)
+
+###############################################################################
+#
+# flatiter
+#
+# flatiter needs a toplevel description
+#
+###############################################################################
+
+# attributes
+add_newdoc('numpy.core', 'flatiter', ('base',
+ """documentation needed
+
+ """))
+
+
+
+add_newdoc('numpy.core', 'flatiter', ('coords',
+ """An N-d tuple of current coordinates.
+
+ """))
+
+
+
+add_newdoc('numpy.core', 'flatiter', ('index',
+ """documentation needed
+
+ """))
+
+
+
+# functions
+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
+
+ """))
+
+
+###############################################################################
+#
+# broadcast
+#
+###############################################################################
+
+# attributes
+add_newdoc('numpy.core', 'broadcast', ('index',
+ """current index in broadcasted result
+
+ """))
+
+
+add_newdoc('numpy.core', 'broadcast', ('iters',
+ """tuple of individual iterators
+
+ """))
+
+
+add_newdoc('numpy.core', 'broadcast', ('nd',
+ """number of dimensions of broadcasted result
+
+ """))
+
+
+add_newdoc('numpy.core', 'broadcast', ('numiter',
+ """number of iterators
+
+ """))
+
+
+add_newdoc('numpy.core', 'broadcast', ('shape',
+ """shape of broadcasted result
+
+ """))
+
+
+add_newdoc('numpy.core', 'broadcast', ('size',
+ """total size of broadcasted result
+
+ """))
+
+
+###############################################################################
+#
+# numpy functions
+#
+###############################################################################
+
+add_newdoc('numpy.core.multiarray', 'array',
+ """
+ array(object, dtype=None, copy=True, order=None, subok=True, ndmin=True)
+
+ 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.
+ 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.
+
+ 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 initialising entries.
+
+ Parameters
+ ----------
+ shape : {tuple of int, 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.
+
+ See Also
+ --------
+ empty_like, zeros
+
+ 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], #random data
+ [ 2.13182611e-314, 3.06959433e-309]])
+
+ >>> np.empty([2, 2], dtype=int)
+ array([[-1073741821, -1067949133], #random data
+ [ 496041986, 19249760]])
+
+ """)
+
+
+add_newdoc('numpy.core.multiarray','scalar',
+ """scalar(dtype,obj)
+
+ Return a new scalar array of the given type initialized with
+ obj. Mainly for pickle support. The 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 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 : {tuple of ints, int}
+ 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
+ --------
+ numpy.zeros_like : Return an array of zeros with shape and type of input.
+ numpy.ones_like : Return an array of ones with shape and type of input.
+ numpy.empty_like : Return an empty array with shape and type of input.
+ numpy.ones : Return a new array setting values to one.
+ numpy.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')])
+ array([(0, 0), (0, 0)],
+ dtype=[('x', '<i4'), ('y', '<i4')])
+
+ """)
+
+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='')
+
+ Return a new 1d array initialized from raw binary or text data in
+ string.
+
+ Parameters
+ ----------
+ string : str
+ A string containing the data.
+ dtype : dtype, optional
+ The data type of the array. 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, then the size will be determined from the length of the
+ data.
+ sep : str, optional
+ If provided and not empty, then the data will be interpreted as
+ ASCII text with decimal numbers. This argument is interpreted as the
+ string separating numbers in the data. Extra whitespace between
+ elements is also ignored.
+
+ Returns
+ -------
+ arr : array
+ The constructed array.
+
+ Raises
+ ------
+ ValueError
+ If the string is not the correct size to satisfy the requested
+ `dtype` and `count`.
+
+ 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)
+
+ Invalid inputs:
+
+ >>> np.fromstring('\\x01\\x02\\x03\\x04\\x05', dtype=np.int32)
+ Traceback (most recent call last):
+ File "<stdin>", line 1, in <module>
+ ValueError: string size must be a multiple of element size
+ >>> np.fromstring('\\x01\\x02', dtype=np.uint8, count=3)
+ Traceback (most recent call last):
+ File "<stdin>", line 1, in <module>
+ ValueError: string is smaller than requested size
+
+ """)
+
+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 string
+ 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 : string
+ 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
+ An object that exposes the buffer interface.
+ dtype : data-type, optional
+ Data type of the returned array.
+ 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.
+
+ 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 ndarrays
+ 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
+ --------
+ 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)
+
+ 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]])
+
+ """)
+
+add_newdoc('numpy.core.multiarray', '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`.
+
+ 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 a ndarray rather than a list.
+
+ 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.
+ 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
+ -------
+ out : 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)
+
+ Set a Python function to be used when pretty printing arrays.
+
+ Parameters
+ ----------
+ f : Python function
+ Function to be used to pretty print arrays. The function should expect
+ a single array argument and return a string of the representation of
+ the array.
+ repr : int
+ Unknown.
+
+ Examples
+ --------
+ >>> def pprint(arr):
+ ... return 'HA! - What are you going to do now?'
+ ...
+ >>> np.set_string_function(pprint)
+ >>> a = np.arange(10)
+ >>> a
+ HA! - What are you going to do now?
+ >>> print a
+ [0 1 2 3 4 5 6 7 8 9]
+
+ """)
+
+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:
+
+ >>> 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.
+
+ Returns
+ -------
+ out : ndarray or tuple of ndarrays
+ If both `x` and `y` are specified, the output array, shaped like
+ `condition`, 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
+ --------
+ >>> 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.]])
+
+ >>> 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]))
+
+ """)
+
+
+add_newdoc('numpy.core.multiarray', 'lexsort',
+ """
+ lexsort(keys, axis=-1)
+
+ Perform an indirect sort using a list of keys.
+
+ Imagine three input keys, ``a``, ``b`` and ``c``. These can be seen as
+ columns in a spreadsheet. The first row of the spreadsheet would
+ therefore be ``a[0], b[0], c[0]``. Lexical sorting orders the different
+ rows by first sorting on the on first column (key), then the second,
+ and so forth. At each step, the previous ordering is preserved
+ when equal keys are encountered.
+
+ Parameters
+ ----------
+ keys : (k,N) array or tuple containing k (N,)-shaped sequences
+ The `k` different "columns" to be sorted. The last column is the
+ primary sort column.
+ 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 second, then first column
+ >>> 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 the first elements are sorted. For each first element,
+ the second elements are also sorted.
+
+ 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:
+
+ >>> 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=d1, to=d2)
+
+ Returns True if cast between data types can occur without losing precision.
+
+ Parameters
+ ----------
+ from: data type code
+ Data type code to cast from.
+ to: data type code
+ Data type code to cast to.
+
+ Returns
+ -------
+ out : bool
+ True if cast can occur without losing precision.
+
+ """)
+
+add_newdoc('numpy.core.multiarray','newbuffer',
+ """newbuffer(size)
+
+ Return a new 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.
+
+ """)
+
+##############################################################################
+#
+# Documentation for ndarray attributes and methods
+#
+##############################################################################
+
+
+##############################################################################
+#
+# ndarray object
+#
+##############################################################################
+
+
+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 or
+ a floating point number, etc.).
+
+ Arrays should be constructed using `array`, `zeros` or `empty` (refer to
+ the ``See Also`` section below). The parameters given here describe
+ a low-level method for instantiating an array (`ndarray(...)`).
+
+ For more information, refer to the `numpy` module and examine the
+ the methods and attributes of an array.
+
+ Attributes
+ ----------
+ T : ndarray
+ Transponent of the array.
+ data : buffer
+ Array data in memory.
+ dtype : data type
+ Data type, describing the format of the elements in the array.
+ flags : dict
+ Dictionary containing information related to memory use, e.g.,
+ 'C_CONTIGUOUS', 'OWNDATA', 'WRITEABLE', and others.
+ flat : ndarray
+ Return flattened version of the array as an iterator. The iterator
+ allows assignments, e.g., ``x.flat = 3``.
+ 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 size of each element in memory (in bytes).
+ nbytes : int
+ The total number of bytes required to store the array data,
+ i.e., ``itemsize * size``.
+ 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 6 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 on another array, that array is
+ its `base` (unless that array is also a view). The `base` array
+ is where the array data is ultimately stored.
+
+ Parameters
+ ----------
+ shape : tuple of ints
+ Shape of created array.
+ dtype : data type, optional
+ Any object that can be interpreted 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.
+
+ See Also
+ --------
+ array : Construct an array.
+ zeros : Create an array and fill its allocated memory with zeros.
+ empty : Create an array, but leave its allocated memory unchanged.
+ 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 exporting 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 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]])
+
+ 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])
+
+ """)
+
+
+##############################################################################
+#
+# ndarray attributes
+#
+##############################################################################
+
+
+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
+ --------
+
+ Base of an array owning its memory is None:
+
+ >>> x = np.array([1,2,3,4])
+ >>> x.base is None
+ True
+
+ Slicing creates a view, and the memory is shared with x:
+
+ >>> y = x[2:]
+ >>> y.base is x
+ True
+
+ """))
+
+
+add_newdoc('numpy.core.multiarray', 'ndarray', ('ctypes',
+ """A ctypes interface object.
+
+ """))
+
+
+add_newdoc('numpy.core.multiarray', 'ndarray', ('data',
+ """Buffer object pointing to the start of the data.
+
+ """))
+
+
+add_newdoc('numpy.core.multiarray', 'ndarray', ('dtype',
+ """Data-type for the array.
+
+ """))
+
+
+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 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.
+ ALIGNED (A)
+ The data and strides 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 also accessed dictionary-like, and using
+ lowercased attribute names. Short flag names are only supported in
+ dictionary access.
+
+ Only the UPDATEIFCOPY, WRITEABLE, and ALIGNED flags can be changed by
+ the user, via assigning to ``flags['FLAGNAME']`` or `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.
+
+ """))
+
+
+add_newdoc('numpy.core.multiarray', 'ndarray', ('flat',
+ """
+ A 1-d flat iterator.
+
+ Examples
+ --------
+ >>> x = np.arange(3*4*5)
+ >>> x.shape = (3,4,5)
+ >>> x.flat[19]
+ 19
+ >>> x.T.flat[19]
+ 31
+
+ """))
+
+
+add_newdoc('numpy.core.multiarray', 'ndarray', ('nbytes',
+ """
+ Number of bytes in the array.
+
+ 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')
+
+ """))
+
+
+add_newdoc('numpy.core.multiarray', 'ndarray', ('shape',
+ """
+ Tuple of array dimensions.
+
+ Examples
+ --------
+ >>> x = np.array([1,2,3,4])
+ >>> x.shape
+ (4,)
+ >>> y = np.zeros((4,5,6))
+ >>> y.shape
+ (4, 5, 6)
+ >>> y.shape = (2, 5, 2, 3, 2)
+ >>> y.shape
+ (2, 5, 2, 3, 2)
+
+ """))
+
+
+add_newdoc('numpy.core.multiarray', 'ndarray', ('size',
+ """
+ Number of elements in the array.
+
+ Examples
+ --------
+ >>> x = np.zeros((3,5,2), dtype=np.complex128)
+ >>> x.size
+ 30
+
+ """))
+
+
+add_newdoc('numpy.core.multiarray', 'ndarray', ('strides',
+ """
+ Tuple of bytes to step in each dimension.
+
+ The byte offset of element ``(i[0], i[1], ..., i[n])`` in an array `a`
+ is::
+
+ offset = sum(np.array(i) * a.strides)
+
+ Examples
+ --------
+ >>> 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 self is returned for self.ndim < 2.
+
+ Examples
+ --------
+ >>> x = np.array([[1.,2.],[3.,4.]])
+ >>> x.T
+ array([[ 1., 3.],
+ [ 2., 4.]])
+
+ """))
+
+
+##############################################################################
+#
+# ndarray methods
+#
+##############################################################################
+
+
+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_wrap__',
+ """a.__array_wrap__(obj) -> Object of same type as a from ndarray obj.
+
+ """))
+
+
+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)
+
+ Check if any of the elements of `a` are 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 of `a`.
+
+ Parameters
+ ----------
+ axis : int, optional
+ Axis along which to operate. By default flattened input is used.
+ out : ndarray, optional
+ Alternative output array in which to place the result. Must
+ be of the same shape and buffer length as the expected output.
+
+ Returns
+ -------
+ index_array : ndarray
+ An array of indices or single index value, or a reference to `out`
+ if it was specified.
+
+ Examples
+ --------
+ >>> a = np.arange(6).reshape(2,3)
+ >>> a.argmax()
+ 5
+ >>> a.argmax(0)
+ array([1, 1, 1])
+ >>> a.argmax(1)
+ array([2, 2])
+
+ """))
+
+
+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.ndarray.argmax` for detailed documentation.
+
+ """))
+
+
+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', ('astype',
+ """
+ a.astype(t)
+
+ Copy of the array, cast to a specified type.
+
+ Parameters
+ ----------
+ t : string or dtype
+ Typecode or data-type to which the array is cast.
+
+ 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()
+
+ Return an array with all complex-valued elements conjugated.
+
+ """))
+
+
+add_newdoc('numpy.core.multiarray', 'ndarray', ('conjugate',
+ """a.conjugate()
+
+ Return an array with all complex-valued elements conjugated.
+
+ """))
+
+
+add_newdoc('numpy.core.multiarray', 'ndarray', ('copy',
+ """
+ a.copy(order='C')
+
+ Return a copy of the array.
+
+ Parameters
+ ----------
+ order : {'C', 'F', 'A'}, optional
+ By default, the result is stored in C-contiguous (row-major) order in
+ memory. If `order` is `F`, the result has 'Fortran' (column-major)
+ order. If order is 'A' ('Any'), then the result has the same order
+ as the input.
+
+ 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.
+
+ Refer to `numpy.diagonal` for full documentation.
+
+ See Also
+ --------
+ numpy.diagonal : equivalent function
+
+ """))
+
+
+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.
+
+ """))
+
+
+add_newdoc('numpy.core.multiarray', 'ndarray', ('fill',
+ """
+ a.fill(value)
+
+ Fill the array with a scalar value.
+
+ Parameters
+ ----------
+ a : ndarray
+ Input array
+ 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')
+
+ Collapse an array into one dimension.
+
+ Parameters
+ ----------
+ order : {'C', 'F'}, optional
+ Whether to flatten in C (row-major) or Fortran (column-major) order.
+ The default is 'C'.
+
+ Returns
+ -------
+ y : ndarray
+ A copy of the input array, flattened to one dimension.
+
+ 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)
+
+ Returns a field of the given array as a certain type. A field is a view of
+ the array data with each itemsize determined by the given type and the
+ offset into the current array.
+
+ """))
+
+
+add_newdoc('numpy.core.multiarray', 'ndarray', ('item',
+ """a.item()
+
+ Copy the first element of array to a standard Python scalar and return
+ it. The array must be of size one.
+
+ """))
+
+
+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', 'ndarray', ('newbyteorder',
+ """a.newbyteorder(byteorder)
+
+ Equivalent to a.view(a.dtype.newbytorder(byteorder))
+
+ """))
+
+
+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', '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] is true.
+
+ If `values` is not the same size as `a` and `mask` then it will repeat.
+ This gives behavior different from `a[mask] = values`.
+
+ Parameters
+ ----------
+ a : array_like
+ Array to put data into
+ mask : array_like
+ Boolean mask array
+ values : array_like
+ Values to put
+
+ See Also
+ --------
+ place, put, take
+
+ Examples
+ --------
+ >>> a = np.array([10,20,30,40])
+ >>> mask = np.array([True,False,True,True])
+ >>> a.putmask([60,70,80,90], mask)
+ >>> a
+ array([60, 20, 80, 90])
+ >>> a = np.array([10,20,30,40])
+ >>> a[mask]
+ array([60, 80, 90])
+ >>> a[mask] = np.array([60,70,80,90])
+ >>> a
+ array([60, 20, 70, 80])
+ >>> a.putmask([10,90], mask)
+ >>> a
+ array([10, 20, 10, 90])
+ >>> np.putmask(a, mask, [60,70,80,90])
+
+ """)
+
+
+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
+
+ """))
+
+
+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, order=False)
+
+ Change shape and size of array in-place.
+
+ Parameters
+ ----------
+ a : ndarray
+ Input array.
+ new_shape : {tuple, int}
+ Shape of resized array.
+ refcheck : bool, optional
+ If False, memory referencing will not be checked. Default is True.
+ order : bool, optional
+ <needs an explanation>. Default if False.
+
+ Returns
+ -------
+ None
+
+ Raises
+ ------
+ ValueError
+ If `a` does not own its own data, or references or views to it exist.
+
+ Examples
+ --------
+ Shrinking an array: array is flattened in C-order, resized, and reshaped:
+
+ >>> a = np.array([[0,1],[2,3]])
+ >>> a.resize((2,1))
+ >>> a
+ array([[0],
+ [1]])
+
+ Enlarging an array: as above, but missing entries are filled with zeros:
+
+ >>> b = np.array([[0,1],[2,3]])
+ >>> b.resize((2,3))
+ >>> 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 ...
+
+ """))
+
+
+add_newdoc('numpy.core.multiarray', 'ndarray', ('round',
+ """
+ a.round(decimals=0, out=None)
+
+ Return an array rounded a 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')
+
+ 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',
+ """m.setfield(value, dtype, offset) -> None.
+ places val into field of the given array defined by the data type and offset.
+
+ """))
+
+
+add_newdoc('numpy.core.multiarray', 'ndarray', ('setflags',
+ """a.setflags(write=None, align=None, uic=None)
+
+ """))
+
+
+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.
+
+ 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', ('squeeze',
+ """
+ a.squeeze()
+
+ 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.
+
+ Data is always written in 'C' order, independently of the order of `a`.
+ The data produced by this method can be recovered by using the function
+ fromfile().
+
+ This is a convenience function for quick storage of array data.
+ Information on endianess 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 endianess. Some of these problems can be overcome
+ by outputting the data as text files at the expense of speed and file size.
+
+ Parameters
+ ----------
+ fid : file or string
+ An open file object or a string containing a filename.
+ sep : string
+ Separator between array items for text output.
+ If "" (empty), a binary file is written, equivalently to
+ file.write(a.tostring()).
+ format : string
+ Format string for text file output.
+ Each entry in the array is formatted to text by converting it to the
+ closest Python type, and using "format" % item.
+
+ """))
+
+
+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 hierarchical 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]]
+
+ """))
+
+
+add_newdoc('numpy.core.multiarray', 'ndarray', ('tostring',
+ """a.tostring(order='C')
+
+ Construct a Python string containing the raw data bytes in the array.
+
+ Parameters
+ ----------
+ order : {'C', 'F', None}
+ Order of the data for multidimensional arrays:
+ C, Fortran, or the same as for the original array.
+
+ """))
+
+
+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 'a' with axes transposed. If no axes are given,
+ or None is passed, switches the order of the axes. For a 2-d
+ array, this is the usual matrix transpose. If axes are given,
+ they describe how the axes are permuted.
+
+ 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
+ Data-type descriptor of the returned view, e.g. float32 or int16.
+ type : python type
+ Type of the returned view, e.g. ndarray or matrix.
+
+ 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)
+ >>> print y.dtype
+ int16
+
+ >>> print type(y)
+ <class 'numpy.core.defmatrix.matrix'>
+
+ 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)
+
+ """))
+
+add_newdoc('numpy.core.umath','geterrobj',
+ """geterrobj()
+
+ Used internally by `geterr`.
+
+ Returns
+ -------
+ errobj : list
+ Internal numpy buffer size, error mask, error callback function.
+
+ """)
+
+add_newdoc('numpy.core.umath', 'seterrobj',
+ """
+ seterrobj(errobj)
+
+ Used internally by `seterr`.
+
+ Parameters
+ ----------
+ errobj : list
+ [buffer_size, error_mask, callback_func]
+
+ See Also
+ --------
+ seterrcall
+
+ """)
+
+add_newdoc('numpy.core', 'ufunc',
+ """
+ Functions that operate element by element on whole arrays.
+
+ 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', ('reduce',
+ """
+ reduce(array, axis=0, dtype=None, out=None)
+
+ Reduce applies the operator to all elements of the array.
+
+ For a one-dimensional array, reduce produces results equivalent to:
+ ::
+
+ r = op.identity
+ for i in xrange(len(A)):
+ r = op(r,A[i])
+ return r
+
+ For example, add.reduce() is equivalent to sum().
+
+ Parameters
+ ----------
+ array : array_like
+ The array to act on.
+ axis : integer, optional
+ The axis along which to apply the reduction.
+ 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 : array_like, 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 equal to out.
+
+ Examples
+ --------
+ >>> np.multiply.reduce([2,3,5])
+ 30
+
+ """))
+
+add_newdoc('numpy.core', 'ufunc', ('accumulate',
+ """
+ accumulate(array, axis=None, 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
+ for i in xrange(len(A)):
+ t = op(t,A[i])
+ r[i] = t
+ return r
+
+ For example, add.accumulate() is equivalent to cumsum().
+
+ Parameters
+ ----------
+ array : array_like
+ The array to act on.
+ axis : int, optional
+ The axis along which to apply the accumulation.
+ 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 accumulated values. If `out` was supplied, `r` is equal to
+ `out`.
+
+ Examples
+ --------
+ >>> np.multiply.accumulate([2,3,5])
+ array([2,6,30])
+
+ """))
+
+add_newdoc('numpy.core', 'ufunc', ('reduceat',
+ """
+ reduceat(self, array, indices, axis=None, dtype=None, out=None)
+
+ Reduceat performs a reduce with specified slices over an axis.
+
+ Computes op.reduce(`array[indices[i]:indices[i+1]]`)
+ for i=0..end with an implicit `indices[i+1]` = len(`array`)
+ assumed when i = end - 1.
+
+ If `indices[i]` >= `indices[i + 1]`
+ then the result is `array[indices[i]]` for that value.
+
+ The function op.accumulate(`array`) is the same as
+ op.reduceat(`array`, `indices`)[::2]
+ where `indices` is range(len(`array`)-1) with a zero placed
+ in every other sample:
+ `indices` = zeros(len(`array`)*2 - 1)
+ `indices[1::2]` = range(1, len(`array`))
+
+ The output shape is based on the size of `indices`.
+
+ Parameters
+ ----------
+ array : array_like
+ The array to act on.
+ indices : array_like
+ Paired indices 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 : array
+ The reduced values. If `out` was supplied, `r` is equal to `out`.
+
+ 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])
+
+ """))
+
+add_newdoc('numpy.core', 'ufunc', ('outer',
+ """
+ outer(A,B)
+
+ Compute the result of applying op to all pairs (a,b)
+
+ op.outer(A,B) is equivalent to
+ op(A[:,:,...,:,newaxis,...,newaxis]*B[newaxis,...,newaxis,:,...,:])
+ where A has B.ndim new axes appended and B has A.ndim new axes prepended.
+
+ For A and B one-dimensional, this is equivalent to
+ ::
+
+ r = empty(len(A),len(B))
+ for i in xrange(len(A)):
+ for j in xrange(len(B)):
+ r[i,j] = A[i]*B[j]
+
+ If A and B are higher-dimensional, the result has dimension A.ndim+B.ndim
+
+ Parameters
+ ----------
+ A : array_like
+ First term
+ B : array_like
+ Second term
+
+ Returns
+ -------
+ r : ndarray
+ Output array
+
+ Examples
+ --------
+ >>> np.multiply.outer([1,2,3],[4,5,6])
+ array([[ 4, 5, 6],
+ [ 8, 10, 12],
+ [12, 15, 18]])
+
+ """))