Array Objects
Numeric
provides an
array type that represents a grid of items. An
array object a has a
specified number of dimensions, known as its
rank, up to some arbitrarily high limit
(normally 40, when Numeric is
built with default options). A scalar (i.e., a single number) has
rank 0, a vector has rank 1, a
matrix has rank 2, and so
forth.
Type Codes
The
values that occupy cells in the grid of an array
object, known as the elements of the array, are
homogeneous, meaning they are all of the same type, and all element
values are stored within one memory area. This contrasts with a list
or tuple, where the items may be of different types and each is
stored as a separate Python object. This means a
Numeric array occupies far less memory than a
Python list or tuple with the same number of items. The type of
a’s elements is encoded
as a’s type code, a
one-character string, as shown in Table 15-3.
Factory functions that build array instances,
covered in Section 15.6.6
later in this chapter, take a typecode
argument that is one of the values in Table 15-3.
Table 15-3. Type codes for Numeric arrays
|
Type code |
C type |
Python type |
Synonym |
|---|---|---|---|
'c' |
char |
|
Character |
'b' |
unsigned char |
int |
UnsignedInt8 |
'1' |
signed char |
int |
Int8 |
's' |
short |
int |
Int16 |
'i' |
int |
int |
Int32 |
'l' |
long |
int |
Int |
'f' |
float |
float |
Float32 |
'F' |
two |
complex |
Complex32 |
'd' |
double |
float |
Float |
'D' |
two |
complex |
Complex |
'O' |
PyObject* |
any |
PyObject |
Numeric supplies ...