numpy.concatenate((a1, a2, ...), axis=0, out=None, dtype=None, casting="same_kind")
参数:
a1, a2, ...
:sequence of array_like,除了将被对应的轴之外,数组必须是相同的形状;axis
:int, optional,将被组合的轴,默认为0,如果为None,将被展开为一维数组;out
:ndarray, optional,如果给定,将存放结果,尺寸必须匹配;dtype
:str or dtype,给定输出的数据类型,不能和参数 out
一起出现;casting
:{‘no’, ‘equiv’, ‘safe’, ‘same_kind’, ‘unsafe’}, optional,控制可能发生的数据转换类型。默认为 ‘same_kind’;结果:
res
:组合后的数组;# 数组的简单连接
>>> a = np.array([[1, 2], [3, 4]])
>>> b = np.array([[5, 6]])
>>> print(a, b)
[[1 2]
[3 4]] [[5 6]]
>>> np.concatenate((a, b), axis=0)
array([[1, 2],
[3, 4],
[5, 6]])
>>> np.concatenate((a, b.T), axis=1)
array([[1, 2, 5],
[3, 4, 6]])
>>> np.concatenate((a, b), axis=None)
array([1, 2, 3, 4, 5, 6])
numpy.stack(arrays, axis=0, out=None)
参数:
arrays
:sequence of array_like,数组必须是相同的形状;axis
:int, optional,数组组合的轴;out
:ndarray, optional,如果给定,将存放结果,尺寸必须匹配;结果:
stacked
:ndarray,使用新轴连接数组;>>> arrays = [np.random.randn(3, 4) for _ in range(10)]
>>> np.stack(arrays, axis=0).shape
(10, 3, 4)
>>> np.stack(arrays, axis=1).shape
(3, 10, 4)
>>> a = np.array([1, 2, 3])
>>> b = np.array([4, 5, 6])
>>> np.stack((a, b))
array([[1, 2, 3],
[4, 5, 6]])
>>> np.stack((a, b), axis=1)
array([[1, 4],
[2, 5],
[3, 6]])
>>> np.stack((a, b), axis=-1)
array([[1, 4],
[2, 5],
[3, 6]])
numpy.column_stack(tup)
参数:
tup
:sequence of 1-D or 2-D arrays,数组不信有相同尺寸的第一维;结果:
stacked
:2-D array,将给定的数组按列连接为二维数组;>>> a = np.array([(1,2,3),(1,2,3)])
>>> b = np.array((3,4))
>>> np.column_stack((a,b))
array([[1, 2, 3, 3],
[1, 2, 3, 4]])
numpy.dstack(tup)
参数:
tup
:sequence of arrays,数组除第三维外,形状相同;结果:
stacked
:ndarray,将给定的数组连接为三维数组;>>> a = np.array((1,2,3))
>>> b = np.array((2,3,4))
>>> np.dstack((a,b))
array([[[1, 2],
[2, 3],
[3, 4]]])
numpy.hstack(tup)
参数:
tup
:sequence of arrays,数组除第二维外,形状相同;结果:
stacked
:ndarray,水平(按列)顺序堆叠数组,将给定的数组连接的数组;>>> a = np.array((1,2,3))
>>> b = np.array((4,5,6))
>>> np.hstack((a,b))
array([1, 2, 3, 4, 5, 6])
>>> a = np.array([[1],[2],[3]])
>>> b = np.array([[4],[5],[6]])
>>> np.hstack((a,b))
array([[1, 4],
[2, 5],
[3, 6]])
numpy.vstack(tup)
参数:
tup
:sequence of arrays,数组除第一维外,形状相同;结果:
stacked
:ndarray,垂直(行)顺序堆叠数组,将给定的数组连接的数组;>>> a = np.array((1,2,3))
>>> b = np.array((4,5,6))
>>> np.hstack((a,b))
array([[1, 2, 3],
[4, 5, 6]])
>>> a = np.array([[1],[2],[3]])
>>> b = np.array([[4],[5],[6]])
>>> np.hstack((a,b))
array([[1],
[2],
[3],
[4],
[5],
[6]])
numpy.block(arrays)
参数:
arrays
:nested list of array_like or scalars,如果传递了单个ndarray或scalar(深度为0的嵌套列表),则返回时不会修改(也不会复制),元素形状必须沿适当的轴匹配(无需广播),但将根据需要在形状前面加上前导1,以使尺寸匹配;结果:
block_array
:ndarray,块组装的数组;# 块数组
>>> A = np.eye(2) * 2
>>> B = np.eye(3) * 3
>>> np.block([
[A, np.zeros((2, 3))],
[np.ones((3, 2)), B ]
])
array([[2., 0., 0., 0., 0.],
[0., 2., 0., 0., 0.],
[1., 1., 3., 0., 0.],
[1., 1., 0., 3., 0.],
[1., 1., 0., 0., 3.]])
numpy.split(ary, indices_or_sections, axis=0)
参数:
ary
:ndarray,被划分的数组;indices_or_sections
:int or 1-D array,如果是 int,将被划分为N个对应维度等长的数组,如果是 1-D array,表示数组的拆分位置;axis
:int, optional,拆分的维度,默认0;返回:
sub-arrays
:list of ndarrays,数组 ary
的子数组视图的列表;>>> x = np.arange(20.0).reshape(10, 2)
>>> np.split(x, 5)
[array([[0., 1.],
[2., 3.]]),
array([[4., 5.],
[6., 7.]]),
array([[ 8., 9.],
[10., 11.]]),
array([[12., 13.],
[14., 15.]]),
array([[16., 17.],
[18., 19.]])]
>>> np.split(x, [2, 5, 7])
[array([[0., 1.],
[2., 3.]]),
array([[4., 5.],
[6., 7.],
[8., 9.]]),
array([[10., 11.],
[12., 13.]]),
array([[14., 15.],
[16., 17.],
[18., 19.]])]
numpy.array_split(ary, indices_or_sections, axis=0)
几乎等同于 numpy.split
。