O'Reilly logo

Python in a Nutshell, 2nd Edition 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 supplies a type array that represents a grid of items. An array object a has a given number of dimensions, known as its rank, up to some arbitrarily high limit (normally 30, 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.

Typecodes

The values in the grid cells 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, where items may be of different types, each stored as a separate Python object. This means a Numeric array occupies far less memory than a Python list with the same number of items. The type of a’s elements is encoded as a’s typecode, a one-character string, as shown in Table 16-2. Factory functions that build array instances (covered in Factory Functions) take a typecode argument that is one of the values in Table 16-2.

Table 16-2. Typecodes for Numeric arrays

Typecode

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

'w'

unsigned short

int

UnsignedInt16

'i'

int

int

Int32

'u'

unsigned

int

UnsignedInt32

'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 readable attribute names for each typecode, as shown in the last column of Table 16-2. Numeric also 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