|
|
|
|
|
X.flat returns an indexable 1-D iterator (mostly similar to an array |
|
but always 1-d) --- only has .copy and .__array__ attributes of an array!!! |
|
|
|
.typecode() --> .dtype.char |
|
|
|
.iscontiguous() --> .flags['CONTIGUOUS'] or .flags.contiguous |
|
|
|
.byteswapped() -> .byteswap() |
|
|
|
.itemsize() -> .itemsize |
|
|
|
.toscalar() -> .item() |
|
|
|
If you used typecode characters: |
|
|
|
'c' -> 'S1' or 'c' |
|
'b' -> 'B' |
|
'1' -> 'b' |
|
's' -> 'h' |
|
'w' -> 'H' |
|
'u' -> 'I' |
|
|
|
|
|
C -level |
|
|
|
some API calls that used to take PyObject * now take PyArrayObject * |
|
(this should only cause warnings during compile and not actual problems). |
|
PyArray_Take |
|
|
|
These commands now return a buffer that must be freed once it is used |
|
using PyMemData_FREE(ptr); |
|
|
|
a->descr->zero --> PyArray_Zero(a) |
|
a->descr->one --> PyArray_One(a) |
|
|
|
Numeric/arrayobject.h --> numpy/oldnumeric.h |
|
|
|
|
|
|
|
|
|
PyArray_CHAR --> PyArray_CHAR |
|
(or PyArray_STRING which is more flexible) |
|
PyArray_SBYTE --> PyArray_BYTE |
|
|
|
Any uses of character codes will need adjusting.... |
|
use PyArray_XXXLTR where XXX is the name of the type. |
|
|
|
|
|
If you used function pointers directly (why did you do that?), |
|
the arguments have changed. Everything that was an int is now an intp. |
|
Also, arrayobjects should be passed in at the end. |
|
|
|
a->descr->cast[i](fromdata, fromstep, todata, tostep, n) |
|
a->descr->cast[i](fromdata, todata, n, PyArrayObject *in, PyArrayObject *out) |
|
anything but single-stepping is not supported by this function |
|
use the PyArray_CastXXXX functions. |
|
|
|
|