O'Reilly logo

Python in a Nutshell by Alex Martelli

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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

str (length 1)

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 floats

complex
Complex32
'd'
double
float
Float
'D'

two doubles

complex
Complex
'O'
PyObject*
any
PyObject

Numeric supplies ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required