官方Document: https://www.numpy.org/devdocs/reference/routines.array-manipulation.html 开发测试环境 Win10 Python 3.6.4 NumPy 1.14.2
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.flattenReturn 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. broadcastProduce 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. asscalarConvert 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. fliplrFlip array in the left/right direction. flipudFlip 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.