Basic operations
函数原型 | 作用 |
---|
[copyto ](dst, src[, casting, where]) | Copies values from one array to another, broadcasting as necessary. |
Changing array shape
函数原型 | 作用 |
---|
[reshape ](a, newshape[, order]) | Gives a new shape to an array without changing its data. |
[ravel ](a[, order]) | Return a contiguous flattened array. |
[ndarray.flat ] | A 1-D iterator over the array. |
ndarray.flatten | Return a copy of the array collapsed into one dimension. |
Transpose-like operations
函数原型 | 作用 |
---|
[moveaxis ](a, source, destination) | Move axes of an array to new positions. |
[rollaxis ](a, axis[, start]) | Roll the specified axis backwards, until it lies in a given position. |
[swapaxes ](a, axis1, axis2) | Interchange two axes of an array. |
[ndarray.T ] | Same as self.transpose(), except that self is returned if self.ndim < 2. |
[transpose ](a[, axes]) | Permute the dimensions of an array. |
Changing number of dimensions
函数原型 | 作用 |
---|
atleast_1d (*arys) | Convert inputs to arrays with at least one dimension. |
atleast_2d (*arys) | View inputs as arrays with at least two dimensions. |
atleast_3d (*arys) | View inputs as arrays with at least three dimensions. |
broadcast | Produce an object that mimics broadcasting. |
broadcast_to (array, shape[, subok]) | Broadcast an array to a new shape. |
broadcast_arrays (*args, **kwargs) | Broadcast any number of arrays against each other. |
expand_dims (a, axis) | Expand the shape of an array. |
squeeze (a[, axis]) | Remove single-dimensional entries from the shape of an array. |
expand_dims
扩展array的shape, 插入一个新的轴,该轴将出现在扩展阵列形状的轴位置
>>> x = np.array([1,2])
>>> x.shape
(2,)
以下操作相当于 x[np.newaxis,:] or x[np.newaxis]:
>>> y = np.expand_dims(x, axis=0)
>>> y
array([[1, 2]])
>>> y.shape
(1, 2)
>>> y = np.expand_dims(x, axis=1) # Equivalent to x[:,np.newaxis]
>>> y
array([[1],
[2]])
>>> y.shape
(2, 1)
注意在一些列子中使用None
替换np.newaxis
>>> np.newaxis is None
True
squeeze
从数组的形状中移除一维条目
- a : array
- axis: None或者整数或者整数元组,默认是None
选择shape单维度的条目,若选取的axis的shape条目不为1,则会抛出异常
>>> x = np.array([[[0], [1], [2]]])
>>> x.shape
(1, 3, 1)
>>> np.squeeze(x).shape
(3,)
>>> np.squeeze(x, axis=0).shape
(3, 1)
>>> np.squeeze(x, axis=1).shape
Traceback (most recent call last):
...
ValueError: cannot select an axis to squeeze out which has size not equal to one
>>> np.squeeze(x, axis=2).shape
(1, 3)
axis参数输入为整数列表时,起作用相当于axis=None时的作用
Changing kind of array
函数原型 | 作用 |
---|
[asarray ](a[, dtype, order]) | Convert the input to an array. |
[asanyarray ](a[, dtype, order]) | Convert the input to an ndarray, but pass ndarray subclasses through. |
[asmatrix ](data[, dtype]) | Interpret the input as a matrix. |
[asfarray ](a[, dtype]) | Return an array converted to a float type. |
[asfortranarray ](a[, dtype]) | Return an array laid out in Fortran order in memory. |
[ascontiguousarray ](a[, dtype]) | Return a contiguous array in memory (C order). |
[asarray_chkfinite ](a[, dtype, order]) | Convert the input to an array, checking for NaNs or Infs. |
asscalar | Convert an array of size 1 to its scalar equivalent. |
[require ](a[, dtype, requirements]) | Return an ndarray of the provided type that satisfies requirements. |
Joining arrays
函数原型 | 作用 |
---|
concatenate ((a1, a2, …)[, axis, out]) | Join a sequence of arrays along an existing axis. |
stack (arrays[, axis, out]) | Join a sequence of arrays along a new axis. |
column_stack (tup) | Stack 1-D arrays as columns into a 2-D array. |
dstack (tup) | Stack arrays in sequence depth wise (along third axis). |
hstack (tup) | Stack arrays in sequence horizontally (column wise). |
vstack (tup) | Stack arrays in sequence vertically (row wise). |
block (arrays) | Assemble an nd-array from nested lists of blocks. |
concatenate
沿着指定的维度进行合并,结果是该维度上shape增加
- a1, a2, … : array序列,除了axis对应的维度外,其他shape相同
- axis : 沿着axis维进行结合,结合后这个维的shape是序列这个维的shape之和
>>> a = np.array([[1, 2], [3, 4]])
>>> b = np.array([[5, 6]])
>>> a.shape, b.shape
((2, 2), (1, 2))
>>> c = np.concatenate((a, b), axis=0)
>>> c.shape
(3, 2)
>>> c
array([[1, 2],
[3, 4],
[5, 6]])
>>> d = np.concatenate((a, b.T), axis=1)
>>> d
array([[1, 2, 5],
[3, 4, 6]])
>>> d.shape
(2, 3)
Splitting arrays
函数原型 | 作用 |
---|
[split ](ary, indices_or_sections[, axis]) | Split an array into multiple sub-arrays. |
[array_split ](ary, indices_or_sections[, axis]) | Split an array into multiple sub-arrays. |
[dsplit ](ary, indices_or_sections) | Split array into multiple sub-arrays along the 3rd axis (depth). |
[hsplit ](ary, indices_or_sections) | Split an array into multiple sub-arrays horizontally (column-wise). |
[vsplit ](ary, indices_or_sections) | Split an array into multiple sub-arrays vertically (row-wise). |
Tiling arrays
函数原型 | 作用 |
---|
[tile ](A, reps) | Construct an array by repeating A the number of times given by reps. |
[repeat ](a, repeats[, axis]) | Repeat elements of an array. |
Adding and removing elements
函数原型 | 作用 |
---|
[delete ](arr, obj[, axis]) | Return a new array with sub-arrays along an axis deleted. |
[insert ](arr, obj, values[, axis]) | Insert values along the given axis before the given indices. |
[append ](arr, values[, axis]) | Append values to the end of an array. |
[resize ](a, new_shape) | Return a new array with the specified shape. |
[trim_zeros ](filt[, trim]) | Trim the leading and/or trailing zeros from a 1-D array or sequence. |
[unique ](ar[, return_index, return_inverse, …]) | Find the unique elements of an array. |
Rearranging elements
函数原型 | 作用 |
---|
[flip ](m[, axis]) | Reverse the order of elements in an array along the given axis. |
fliplr | Flip array in the left/right direction. |
flipud | Flip array in the up/down direction. |
[reshape ](a, newshape[, order]) | Gives a new shape to an array without changing its data. |
[roll ](a, shift[, axis]) | Roll array elements along a given axis. |
[rot90 ](m[, k, axes]) | Rotate an array by 90 degrees in the plane specified by axes. |