File: //usr/include/numpy/multiarray_api.txt
===========
Numpy C-API
===========
::
unsigned int
PyArray_GetNDArrayCVersion(void )
Included at the very first so not auto-grabbed and thus not
labeled.
::
int
PyArray_SetNumericOps(PyObject *dict)
Set internal structure with number functions that all arrays will use
::
PyObject *
PyArray_GetNumericOps(void )
Get dictionary showing number functions that all arrays will use
::
int
PyArray_INCREF(PyArrayObject *mp)
For object arrays, increment all internal references.
::
int
PyArray_XDECREF(PyArrayObject *mp)
Decrement all internal references for object arrays.
(or arrays with object fields)
::
void
PyArray_SetStringFunction(PyObject *op, int repr)
Set the array print function to be a Python function.
::
PyArray_Descr *
PyArray_DescrFromType(int type)
Get the PyArray_Descr structure for a type.
::
PyObject *
PyArray_TypeObjectFromType(int type)
Get a typeobject from a type-number -- can return NULL.
New reference
::
char *
PyArray_Zero(PyArrayObject *arr)
Get pointer to zero of correct type for array.
::
char *
PyArray_One(PyArrayObject *arr)
Get pointer to one of correct type for array
::
PyObject *
PyArray_CastToType(PyArrayObject *mp, PyArray_Descr *at, int fortran)
For backward compatibility
Cast an array using typecode structure.
steals reference to at --- cannot be NULL
::
int
PyArray_CastTo(PyArrayObject *out, PyArrayObject *mp)
Cast to an already created array.
::
int
PyArray_CastAnyTo(PyArrayObject *out, PyArrayObject *mp)
Cast to an already created array. Arrays don't have to be "broadcastable"
Only requirement is they have the same number of elements.
::
int
PyArray_CanCastSafely(int fromtype, int totype)
Check the type coercion rules.
::
npy_bool
PyArray_CanCastTo(PyArray_Descr *from, PyArray_Descr *to)
leaves reference count alone --- cannot be NULL
::
int
PyArray_ObjectType(PyObject *op, int minimum_type)
Return the typecode of the array a Python object would be converted to
::
PyArray_Descr *
PyArray_DescrFromObject(PyObject *op, PyArray_Descr *mintype)
new reference -- accepts NULL for mintype
::
PyArrayObject **
PyArray_ConvertToCommonType(PyObject *op, int *retn)
::
PyArray_Descr *
PyArray_DescrFromScalar(PyObject *sc)
Return descr object from array scalar.
New reference
::
PyArray_Descr *
PyArray_DescrFromTypeObject(PyObject *type)
::
npy_intp
PyArray_Size(PyObject *op)
Compute the size of an array (in number of items)
::
PyObject *
PyArray_Scalar(void *data, PyArray_Descr *descr, PyObject *base)
Get scalar-equivalent to a region of memory described by a descriptor.
::
PyObject *
PyArray_FromScalar(PyObject *scalar, PyArray_Descr *outcode)
Get 0-dim array from scalar
0-dim array from array-scalar object
always contains a copy of the data
unless outcode is NULL, it is of void type and the referrer does
not own it either.
steals reference to outcode
::
void
PyArray_ScalarAsCtype(PyObject *scalar, void *ctypeptr)
Convert to c-type
no error checking is performed -- ctypeptr must be same type as scalar
in case of flexible type, the data is not copied
into ctypeptr which is expected to be a pointer to pointer
::
int
PyArray_CastScalarToCtype(PyObject *scalar, void
*ctypeptr, PyArray_Descr *outcode)
Cast Scalar to c-type
The output buffer must be large-enough to receive the value
Even for flexible types which is different from ScalarAsCtype
where only a reference for flexible types is returned
This may not work right on narrow builds for NumPy unicode scalars.
::
int
PyArray_CastScalarDirect(PyObject *scalar, PyArray_Descr
*indescr, void *ctypeptr, int outtype)
Cast Scalar to c-type
::
PyObject *
PyArray_ScalarFromObject(PyObject *object)
Get an Array Scalar From a Python Object
Returns NULL if unsuccessful but error is only set if another error occurred.
Currently only Numeric-like object supported.
::
PyArray_VectorUnaryFunc *
PyArray_GetCastFunc(PyArray_Descr *descr, int type_num)
Get a cast function to cast from the input descriptor to the
output type_number (must be a registered data-type).
Returns NULL if un-successful.
::
PyObject *
PyArray_FromDims(int nd, int *d, int type)
Construct an empty array from dimensions and typenum
::
PyObject *
PyArray_FromDimsAndDataAndDescr(int nd, int *d, PyArray_Descr
*descr, char *data)
Like FromDimsAndData but uses the Descr structure instead of typecode
as input.
::
PyObject *
PyArray_FromAny(PyObject *op, PyArray_Descr *newtype, int
min_depth, int max_depth, int flags, PyObject
*context)
Does not check for ENSURECOPY and NOTSWAPPED in flags
Steals a reference to newtype --- which can be NULL
::
PyObject *
PyArray_EnsureArray(PyObject *op)
This is a quick wrapper around PyArray_FromAny(op, NULL, 0, 0, ENSUREARRAY)
that special cases Arrays and PyArray_Scalars up front
It *steals a reference* to the object
It also guarantees that the result is PyArray_Type
Because it decrefs op if any conversion needs to take place
so it can be used like PyArray_EnsureArray(some_function(...))
::
PyObject *
PyArray_EnsureAnyArray(PyObject *op)
::
PyObject *
PyArray_FromFile(FILE *fp, PyArray_Descr *dtype, intp num, char *sep)
Given a ``FILE *`` pointer ``fp``, and a ``PyArray_Descr``, return an
array corresponding to the data encoded in that file.
If the dtype is NULL, the default array type is used (double).
If non-null, the reference is stolen.
The number of elements to read is given as ``num``; if it is < 0, then
then as many as possible are read.
If ``sep`` is NULL or empty, then binary data is assumed, else
text data, with ``sep`` as the separator between elements. Whitespace in
the separator matches any length of whitespace in the text, and a match
for whitespace around the separator is added.
For memory-mapped files, use the buffer interface. No more data than
necessary is read by this routine.
::
PyObject *
PyArray_FromString(char *data, intp slen, PyArray_Descr *dtype, intp
num, char *sep)
Given a pointer to a string ``data``, a string length ``slen``, and
a ``PyArray_Descr``, return an array corresponding to the data
encoded in that string.
If the dtype is NULL, the default array type is used (double).
If non-null, the reference is stolen.
If ``slen`` is < 0, then the end of string is used for text data.
It is an error for ``slen`` to be < 0 for binary data (since embedded NULLs
would be the norm).
The number of elements to read is given as ``num``; if it is < 0, then
then as many as possible are read.
If ``sep`` is NULL or empty, then binary data is assumed, else
text data, with ``sep`` as the separator between elements. Whitespace in
the separator matches any length of whitespace in the text, and a match
for whitespace around the separator is added.
::
PyObject *
PyArray_FromBuffer(PyObject *buf, PyArray_Descr *type, intp
count, intp offset)
::
PyObject *
PyArray_FromIter(PyObject *obj, PyArray_Descr *dtype, intp count)
steals a reference to dtype (which cannot be NULL)
::
PyObject *
PyArray_Return(PyArrayObject *mp)
Return either an array or the appropriate Python object if the array
is 0d and matches a Python type.
::
PyObject *
PyArray_GetField(PyArrayObject *self, PyArray_Descr *typed, int
offset)
Get a subset of bytes from each element of the array
::
int
PyArray_SetField(PyArrayObject *self, PyArray_Descr *dtype, int
offset, PyObject *val)
Set a subset of bytes from each element of the array
::
PyObject *
PyArray_Byteswap(PyArrayObject *self, Bool inplace)
::
PyObject *
PyArray_Resize(PyArrayObject *self, PyArray_Dims *newshape, int
refcheck, NPY_ORDER fortran)
Resize (reallocate data). Only works if nothing else is referencing this
array and it is contiguous. If refcheck is 0, then the reference count is
not checked and assumed to be 1. You still must own this data and have no
weak-references and no base object.
::
int
PyArray_MoveInto(PyArrayObject *dest, PyArrayObject *src)
Move the memory of one array into another.
::
int
PyArray_CopyInto(PyArrayObject *dest, PyArrayObject *src)
Copy an Array into another array -- memory must not overlap.
::
int
PyArray_CopyAnyInto(PyArrayObject *dest, PyArrayObject *src)
Copy an Array into another array -- memory must not overlap
Does not require src and dest to have "broadcastable" shapes
(only the same number of elements).
::
int
PyArray_CopyObject(PyArrayObject *dest, PyObject *src_object)
::
PyObject *
PyArray_NewCopy(PyArrayObject *m1, NPY_ORDER fortran)
Copy an array.
::
PyObject *
PyArray_ToList(PyArrayObject *self)
To List
::
PyObject *
PyArray_ToString(PyArrayObject *self, NPY_ORDER order)
::
int
PyArray_ToFile(PyArrayObject *self, FILE *fp, char *sep, char *format)
To File
::
int
PyArray_Dump(PyObject *self, PyObject *file, int protocol)
::
PyObject *
PyArray_Dumps(PyObject *self, int protocol)
::
int
PyArray_ValidType(int type)
Is the typenum valid?
::
void
PyArray_UpdateFlags(PyArrayObject *ret, int flagmask)
Update Several Flags at once.
::
PyObject *
PyArray_New(PyTypeObject *subtype, int nd, intp *dims, int
type_num, intp *strides, void *data, int itemsize, int
flags, PyObject *obj)
Generic new array creation routine.
::
PyObject *
PyArray_NewFromDescr(PyTypeObject *subtype, PyArray_Descr *descr, int
nd, intp *dims, intp *strides, void *data, int
flags, PyObject *obj)
Generic new array creation routine.
steals a reference to descr (even on failure)
::
PyArray_Descr *
PyArray_DescrNew(PyArray_Descr *base)
base cannot be NULL
::
PyArray_Descr *
PyArray_DescrNewFromType(int type_num)
::
double
PyArray_GetPriority(PyObject *obj, double default_)
Get Priority from object
::
PyObject *
PyArray_IterNew(PyObject *obj)
Get Iterator.
::
PyObject *
PyArray_MultiIterNew(int n, ... )
Get MultiIterator,
::
int
PyArray_PyIntAsInt(PyObject *o)
::
npy_intp
PyArray_PyIntAsIntp(PyObject *o)
::
int
PyArray_Broadcast(PyArrayMultiIterObject *mit)
::
void
PyArray_FillObjectArray(PyArrayObject *arr, PyObject *obj)
Assumes contiguous
::
int
PyArray_FillWithScalar(PyArrayObject *arr, PyObject *obj)
::
npy_bool
PyArray_CheckStrides(int elsize, int nd, intp numbytes, intp
offset, intp *dims, intp *newstrides)
::
PyArray_Descr *
PyArray_DescrNewByteorder(PyArray_Descr *self, char newendian)
returns a copy of the PyArray_Descr structure with the byteorder
altered:
no arguments: The byteorder is swapped (in all subfields as well)
single argument: The byteorder is forced to the given state
(in all subfields as well)
Valid states: ('big', '>') or ('little' or '<')
('native', or '=')
If a descr structure with | is encountered it's own
byte-order is not changed but any fields are:
Deep bytorder change of a data-type descriptor
Leaves reference count of self unchanged --- does not DECREF self ***
::
PyObject *
PyArray_IterAllButAxis(PyObject *obj, int *inaxis)
Get Iterator that iterates over all but one axis (don't use this with
PyArray_ITER_GOTO1D). The axis will be over-written if negative
with the axis having the smallest stride.
::
PyObject *
PyArray_CheckFromAny(PyObject *op, PyArray_Descr *descr, int
min_depth, int max_depth, int requires, PyObject
*context)
steals a reference to descr -- accepts NULL
::
PyObject *
PyArray_FromArray(PyArrayObject *arr, PyArray_Descr *newtype, int
flags)
steals reference to newtype --- acc. NULL
::
PyObject *
PyArray_FromInterface(PyObject *input)
::
PyObject *
PyArray_FromStructInterface(PyObject *input)
::
PyObject *
PyArray_FromArrayAttr(PyObject *op, PyArray_Descr *typecode, PyObject
*context)
::
NPY_SCALARKIND
PyArray_ScalarKind(int typenum, PyArrayObject **arr)
ScalarKind
::
int
PyArray_CanCoerceScalar(int thistype, int neededtype, NPY_SCALARKIND
scalar)
::
PyObject *
PyArray_NewFlagsObject(PyObject *obj)
Get New ArrayFlagsObject
::
npy_bool
PyArray_CanCastScalar(PyTypeObject *from, PyTypeObject *to)
See if array scalars can be cast.
::
int
PyArray_CompareUCS4(npy_ucs4 *s1, npy_ucs4 *s2, size_t len)
::
int
PyArray_RemoveSmallest(PyArrayMultiIterObject *multi)
Adjusts previously broadcasted iterators so that the axis with
the smallest sum of iterator strides is not iterated over.
Returns dimension which is smallest in the range [0,multi->nd).
A -1 is returned if multi->nd == 0.
don't use with PyArray_ITER_GOTO1D because factors are not adjusted
::
int
PyArray_ElementStrides(PyObject *arr)
::
void
PyArray_Item_INCREF(char *data, PyArray_Descr *descr)
::
void
PyArray_Item_XDECREF(char *data, PyArray_Descr *descr)
::
PyObject *
PyArray_FieldNames(PyObject *fields)
Return the tuple of ordered field names from a dictionary.
::
PyObject *
PyArray_Transpose(PyArrayObject *ap, PyArray_Dims *permute)
Return Transpose.
::
PyObject *
PyArray_TakeFrom(PyArrayObject *self0, PyObject *indices0, int
axis, PyArrayObject *ret, NPY_CLIPMODE clipmode)
Take
::
PyObject *
PyArray_PutTo(PyArrayObject *self, PyObject*values0, PyObject
*indices0, NPY_CLIPMODE clipmode)
Put values into an array
::
PyObject *
PyArray_PutMask(PyArrayObject *self, PyObject*values0, PyObject*mask0)
Put values into an array according to a mask.
::
PyObject *
PyArray_Repeat(PyArrayObject *aop, PyObject *op, int axis)
Repeat the array.
::
PyObject *
PyArray_Choose(PyArrayObject *ip, PyObject *op, PyArrayObject
*ret, NPY_CLIPMODE clipmode)
::
int
PyArray_Sort(PyArrayObject *op, int axis, NPY_SORTKIND which)
Sort an array in-place
::
PyObject *
PyArray_ArgSort(PyArrayObject *op, int axis, NPY_SORTKIND which)
ArgSort an array
::
PyObject *
PyArray_SearchSorted(PyArrayObject *op1, PyObject *op2, NPY_SEARCHSIDE
side)
Numeric.searchsorted(a,v)
::
PyObject *
PyArray_ArgMax(PyArrayObject *op, int axis, PyArrayObject *out)
ArgMax
::
PyObject *
PyArray_ArgMin(PyArrayObject *ap, int axis, PyArrayObject *out)
ArgMin
::
PyObject *
PyArray_Reshape(PyArrayObject *self, PyObject *shape)
Reshape
::
PyObject *
PyArray_Newshape(PyArrayObject *self, PyArray_Dims *newdims, NPY_ORDER
fortran)
New shape for an array
::
PyObject *
PyArray_Squeeze(PyArrayObject *self)
return a new view of the array object with all of its unit-length
dimensions squeezed out if needed, otherwise
return the same array.
::
PyObject *
PyArray_View(PyArrayObject *self, PyArray_Descr *type, PyTypeObject
*pytype)
View
steals a reference to type -- accepts NULL
::
PyObject *
PyArray_SwapAxes(PyArrayObject *ap, int a1, int a2)
SwapAxes
::
PyObject *
PyArray_Max(PyArrayObject *ap, int axis, PyArrayObject *out)
Max
::
PyObject *
PyArray_Min(PyArrayObject *ap, int axis, PyArrayObject *out)
Min
::
PyObject *
PyArray_Ptp(PyArrayObject *ap, int axis, PyArrayObject *out)
Ptp
::
PyObject *
PyArray_Mean(PyArrayObject *self, int axis, int rtype, PyArrayObject
*out)
Mean
::
PyObject *
PyArray_Trace(PyArrayObject *self, int offset, int axis1, int
axis2, int rtype, PyArrayObject *out)
Trace
::
PyObject *
PyArray_Diagonal(PyArrayObject *self, int offset, int axis1, int
axis2)
Diagonal
::
PyObject *
PyArray_Clip(PyArrayObject *self, PyObject *min, PyObject
*max, PyArrayObject *out)
Clip
::
PyObject *
PyArray_Conjugate(PyArrayObject *self, PyArrayObject *out)
Conjugate
::
PyObject *
PyArray_Nonzero(PyArrayObject *self)
Nonzero
::
PyObject *
PyArray_Std(PyArrayObject *self, int axis, int rtype, PyArrayObject
*out, int variance)
Set variance to 1 to by-pass square-root calculation and return variance
Std
::
PyObject *
PyArray_Sum(PyArrayObject *self, int axis, int rtype, PyArrayObject
*out)
Sum
::
PyObject *
PyArray_CumSum(PyArrayObject *self, int axis, int rtype, PyArrayObject
*out)
CumSum
::
PyObject *
PyArray_Prod(PyArrayObject *self, int axis, int rtype, PyArrayObject
*out)
Prod
::
PyObject *
PyArray_CumProd(PyArrayObject *self, int axis, int
rtype, PyArrayObject *out)
CumProd
::
PyObject *
PyArray_All(PyArrayObject *self, int axis, PyArrayObject *out)
All
::
PyObject *
PyArray_Any(PyArrayObject *self, int axis, PyArrayObject *out)
Any
::
PyObject *
PyArray_Compress(PyArrayObject *self, PyObject *condition, int
axis, PyArrayObject *out)
Compress
::
PyObject *
PyArray_Flatten(PyArrayObject *a, NPY_ORDER order)
Flatten
::
PyObject *
PyArray_Ravel(PyArrayObject *a, NPY_ORDER fortran)
Ravel
Returns a contiguous array
::
npy_intp
PyArray_MultiplyList(intp *l1, int n)
Multiply a List
::
int
PyArray_MultiplyIntList(int *l1, int n)
Multiply a List of ints
::
void *
PyArray_GetPtr(PyArrayObject *obj, intp*ind)
Produce a pointer into array
::
int
PyArray_CompareLists(intp *l1, intp *l2, int n)
Compare Lists
::
int
PyArray_AsCArray(PyObject **op, void *ptr, intp *dims, int
nd, PyArray_Descr*typedescr)
Simulate a C-array
steals a reference to typedescr -- can be NULL
::
int
PyArray_As1D(PyObject **op, char **ptr, int *d1, int typecode)
Convert to a 1D C-array
::
int
PyArray_As2D(PyObject **op, char ***ptr, int *d1, int *d2, int
typecode)
Convert to a 2D C-array
::
int
PyArray_Free(PyObject *op, void *ptr)
Free pointers created if As2D is called
::
int
PyArray_Converter(PyObject *object, PyObject **address)
Useful to pass as converter function for O& processing in PyArgs_ParseTuple.
This conversion function can be used with the "O&" argument for
PyArg_ParseTuple. It will immediately return an object of array type
or will convert to a CARRAY any other object.
If you use PyArray_Converter, you must DECREF the array when finished
as you get a new reference to it.
::
int
PyArray_IntpFromSequence(PyObject *seq, intp *vals, int maxvals)
PyArray_IntpFromSequence
Returns the number of dimensions or -1 if an error occurred.
vals must be large enough to hold maxvals
::
PyObject *
PyArray_Concatenate(PyObject *op, int axis)
Concatenate
Concatenate an arbitrary Python sequence into an array.
op is a python object supporting the sequence interface.
Its elements will be concatenated together to form a single
multidimensional array. If axis is MAX_DIMS or bigger, then
each sequence object will be flattened before concatenation
::
PyObject *
PyArray_InnerProduct(PyObject *op1, PyObject *op2)
Numeric.innerproduct(a,v)
::
PyObject *
PyArray_MatrixProduct(PyObject *op1, PyObject *op2)
Numeric.matrixproduct(a,v)
just like inner product but does the swapaxes stuff on the fly
::
PyObject *
PyArray_CopyAndTranspose(PyObject *op)
Fast Copy and Transpose
::
PyObject *
PyArray_Correlate(PyObject *op1, PyObject *op2, int mode)
Numeric.correlate(a1,a2,mode)
::
int
PyArray_TypestrConvert(int itemsize, int gentype)
Typestr converter
::
int
PyArray_DescrConverter(PyObject *obj, PyArray_Descr **at)
Get typenum from an object -- None goes to PyArray_DEFAULT
This function takes a Python object representing a type and converts it
to a the correct PyArray_Descr * structure to describe the type.
Many objects can be used to represent a data-type which in NumPy is
quite a flexible concept.
This is the central code that converts Python objects to
Type-descriptor objects that are used throughout numpy.
new reference in *at
::
int
PyArray_DescrConverter2(PyObject *obj, PyArray_Descr **at)
Get typenum from an object -- None goes to NULL
::
int
PyArray_IntpConverter(PyObject *obj, PyArray_Dims *seq)
Get intp chunk from sequence
This function takes a Python sequence object and allocates and
fills in an intp array with the converted values.
Remember to free the pointer seq.ptr when done using
PyDimMem_FREE(seq.ptr)**
::
int
PyArray_BufferConverter(PyObject *obj, PyArray_Chunk *buf)
Get buffer chunk from object
this function takes a Python object which exposes the (single-segment)
buffer interface and returns a pointer to the data segment
You should increment the reference count by one of buf->base
if you will hang on to a reference
You only get a borrowed reference to the object. Do not free the
memory...
::
int
PyArray_AxisConverter(PyObject *obj, int *axis)
Get axis from an object (possibly None) -- a converter function,
::
int
PyArray_BoolConverter(PyObject *object, Bool *val)
Convert an object to true / false
::
int
PyArray_ByteorderConverter(PyObject *obj, char *endian)
Convert object to endian
::
int
PyArray_OrderConverter(PyObject *object, NPY_ORDER *val)
Convert an object to FORTRAN / C / ANY
::
unsigned char
PyArray_EquivTypes(PyArray_Descr *typ1, PyArray_Descr *typ2)
This function returns true if the two typecodes are
equivalent (same basic kind and same itemsize).
::
PyObject *
PyArray_Zeros(int nd, intp *dims, PyArray_Descr *type, int fortran)
Zeros
steal a reference
accepts NULL type
::
PyObject *
PyArray_Empty(int nd, intp *dims, PyArray_Descr *type, int fortran)
Empty
accepts NULL type
steals referenct to type
::
PyObject *
PyArray_Where(PyObject *condition, PyObject *x, PyObject *y)
Where
::
PyObject *
PyArray_Arange(double start, double stop, double step, int type_num)
Arange,
::
PyObject *
PyArray_ArangeObj(PyObject *start, PyObject *stop, PyObject
*step, PyArray_Descr *dtype)
ArangeObj,
this doesn't change the references
::
int
PyArray_SortkindConverter(PyObject *obj, NPY_SORTKIND *sortkind)
Convert object to sort kind
::
PyObject *
PyArray_LexSort(PyObject *sort_keys, int axis)
LexSort an array providing indices that will sort a collection of arrays
lexicographically. The first key is sorted on first, followed by the second key
-- requires that arg"merge"sort is available for each sort_key
Returns an index array that shows the indexes for the lexicographic sort along
the given axis.
::
PyObject *
PyArray_Round(PyArrayObject *a, int decimals, PyArrayObject *out)
Round
::
unsigned char
PyArray_EquivTypenums(int typenum1, int typenum2)
::
int
PyArray_RegisterDataType(PyArray_Descr *descr)
Register Data type
Does not change the reference count of descr
::
int
PyArray_RegisterCastFunc(PyArray_Descr *descr, int
totype, PyArray_VectorUnaryFunc *castfunc)
Register Casting Function
Replaces any function currently stored.
::
int
PyArray_RegisterCanCast(PyArray_Descr *descr, int
totype, NPY_SCALARKIND scalar)
Register a type number indicating that a descriptor can be cast
to it safely
::
void
PyArray_InitArrFuncs(PyArray_ArrFuncs *f)
Initialize arrfuncs to NULL
::
PyObject *
PyArray_IntTupleFromIntp(int len, intp *vals)
PyArray_IntTupleFromIntp
::
int
PyArray_TypeNumFromName(char *str)
::
int
PyArray_ClipmodeConverter(PyObject *object, NPY_CLIPMODE *val)
Convert an object to NPY_RAISE / NPY_CLIP / NPY_WRAP
::
int
PyArray_OutputConverter(PyObject *object, PyArrayObject **address)
Useful to pass as converter function for O& processing in
PyArgs_ParseTuple for output arrays
::
PyObject *
PyArray_BroadcastToShape(PyObject *obj, intp *dims, int nd)
Get Iterator broadcast to a particular shape
::
void
_PyArray_SigintHandler(int signum)
::
void*
_PyArray_GetSigintBuf(void )
::
int
PyArray_DescrAlignConverter(PyObject *obj, PyArray_Descr **at)
Get type-descriptor from an object forcing alignment if possible
None goes to DEFAULT type.
any object with the .fields attribute and/or .itemsize attribute (if the
.fields attribute does not give the total size -- i.e. a partial record
naming). If itemsize is given it must be >= size computed from fields
The .fields attribute must return a convertible dictionary if present.
Result inherits from PyArray_VOID.
::
int
PyArray_DescrAlignConverter2(PyObject *obj, PyArray_Descr **at)
Get type-descriptor from an object forcing alignment if possible
None goes to NULL.
::
int
PyArray_SearchsideConverter(PyObject *obj, void *addr)
Convert object to searchsorted side
::
PyObject *
PyArray_CheckAxis(PyArrayObject *arr, int *axis, int flags)
PyArray_CheckAxis
check that axis is valid
convert 0-d arrays to 1-d arrays
::
npy_intp
PyArray_OverflowMultiplyList(intp *l1, int n)
Multiply a List of Non-negative numbers with over-flow detection.
::
int
PyArray_CompareString(char *s1, char *s2, size_t len)
::
PyObject *
PyArray_MultiIterFromObjects(PyObject **mps, int n, int nadd, ... )
Get MultiIterator from array of Python objects and any additional
PyObject **mps -- array of PyObjects
int n - number of PyObjects in the array
int nadd - number of additional arrays to include in the iterator.
Returns a multi-iterator object.
::
int
PyArray_GetEndianness(void )
::
unsigned int
PyArray_GetNDArrayCFeatureVersion(void )
Returns the built-in (at compilation time) C API version
::
PyObject *
PyArray_Correlate2(PyObject *op1, PyObject *op2, int mode)
correlate(a1,a2,mode)
This function computes the usual correlation (correlate(a1, a2) !=
correlate(a2, a1), and conjugate the second argument for complex inputs
::
PyObject*
PyArray_NeighborhoodIterNew(PyArrayIterObject *x, intp *bounds, int
mode, PyArrayObject*fill)
A Neighborhood Iterator object.