官方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.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.