An N-dimensional array.
The array is homogenous; inspect the type with
row, columns, … are axis.
Number of axis is rank
size() method returns dimensions.
reshape(rows, columns) command rearranges an array.
ravel() flattens an array into one dimension.
resize(rows, columns) works like reshape, but in place.
A dimension specified as -1 is automatically calculated.
concatenate() is the general form.
hstack() work on particular axis.
column_stack() is a specialization of
vstack() for making many 1D arrays into columns of a 2D array.
array_split() is the general form.
vsplit() work on particular axis
Create 1D using
array([1, 2, 3]).
Create 2D using
array([[1, 2], [3, 4]]).
random.randn(num_rows, num_columns) produces a random array of a given shape.
fromfunction(f, shape) calls a function repeatedly as f(x, y, z, …):
- shape is a tuple of integers determining the dimensions
- if f returns something other than a scalar, that will interact with shape to make some other weird shape
arange(min, max, step) returns an array range.
linspace(min, max, num_elements) does the same.
eye() makes an identity array (1s on the diagonal, zeroes elsewhere).
view() method makes a copy. Slicing (by index) triggers this.
copy() is a deep copy.
When iterating over arrays, we start with the first axis:
for row in arr:
However, you can iterate over cells:
for cell in arr.flat:
It's pretty much just like Python?
But you can also index by boolean arrays (on any particular dimension).
A lot of functions are implemented as methods on the array object.
For aggregating functions, you can use the axis argument to control what dimension they aggregate over.
If arrays have different rank, the small array has 1 preprended to its shape until they match.
If array A has a dimension of 1, and array B does not, the value from A will be repeated across that dimension..