numpy.stack
numpy.stack
( arrays, axis=0, out=None)
函数功能:
沿着新轴加入一系列数组
axis参数指定结果维度中新轴的索引。 例如,如果
axis = 0
,则它将是第一个维度,如果axis = -1
,则它将是最后一个维度。
参数
-
arrays : sequence of array_like
每一个数组必须拥有相同的shape
-
axis : int, optional
输入的一系列数组,沿着此轴堆叠形成目标数组
-
out : ndarray, optional
如果有提供,则会被赋值放置结果。shape必须对应正确。如果没有指定out参数,则会返回结果。
返回值
-
stacked : ndarray
堆叠数组比输入数组多一个维度
示例
>>> arrays = [np.random.rand(3, 4) for _ in range(10)]
>>> np.stack(arrays, axis=0).shape
(10, 3, 4)
>>> np.stack(arrays, axis=1).shape
(3, 10, 4)
>>> np.stack(arrays, axis=2).shape
(3, 4, 10)
>>> 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]])
numpy.vstack
numpy.vstack
( tup)
函数功能:
垂直堆叠数组(行方式)。
重建分离数组用
vsplit
函数对于最多3维的数组,此函数最有意义。例如,对于具有高度(第一轴),宽度(第二轴)和r / g / b通道(第三轴)的像素数据。函数
concatenate
,stack
和block
提供了更常用的堆叠连接操作。
参数
-
tup : sequence of ndarrays
除了第一个轴之外,数组必须具有相同的shape。一维数组必须具有相同的长度。
返回值
-
stacked : ndarray
通过堆叠给定的数组所形成的数组。最少二维。
示例
>>> a = np.array([1, 2, 3])
>>> b = np.array([4, 5, 6])
>>> np.vstack((a, b))
array([[1, 2, 3],
[4, 5, 6]])
>>> a = np.array([[1], [2], [3]])
>>> b = np.array([[4], [5], [6]])
>>> np.vstack((a, b))
array([[1],
[2],
[3],
[4],
[5],
[6]])
numpy.hstack
numpy.hstack
( tup)
函数功能:
水平堆叠数组(列方式)。
重建分离数组用
hsplit
函数对于最多3维的数组,此函数最有意义。例如,对于具有高度(第一轴),宽度(第二轴)和r / g / b通道(第三轴)的像素数据。函数
concatenate
,stack
和block
提供了更常用的堆叠连接操作。
参数
-
tup : sequence of ndarrays
除了第二个轴之外,数组必须具有相同的shape,除了可以是任何长度的一维数组。
返回值
-
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.dstack
numpy.stack
( tup)
函数功能:
按深度堆叠数组(沿第三轴)。
重建分离数组用
dsplit
函数对于最多3维的数组,此函数最有意义。例如,对于具有高度(第一轴),宽度(第二轴)和r / g / b通道(第三轴)的像素数据。函数
concatenate
,stack
和block
提供了更常用的堆叠连接操作。
参数
-
tup : sequence of ndarrays
除了第三个轴之外,数组必须具有相同的shape。一维或二维数组必须具有相同的shape。
返回值
-
stacked : ndarray
通过堆叠给定的数组所形成的数组。最少三维。
示例
>>> a = np.array((1, 2, 3))
>>> b = np.array((4, 5, 6))
>>> np.dstack((a, b))
array([[[1, 4],
[2, 5],
[3, 6]]])
>>> a = np.array([[1], [2], [3]])
>>> b = np.array([[4], [5], [6]])
>>> np.dstack((a, b))
array([[[1, 4]],
[[2, 5]],
[[3, 6]]])
numpy.concatenate
numpy.concatenate
( (a1, a2, ...), axis=0, out=None)
函数功能:
沿着现有轴连接一组数组
参数
-
a1, a2, … : sequence of array_like
除了与轴对应的维度(默认情况下为第一个)外,数组必须具有相同的shape。
-
axis : int, optional
数组将沿着此轴进行连接。如果axis为None,则在使用前将数组展开。默认值为0。
-
out : ndarray, optional
如果有提供,则会被赋值放置结果。shape必须对应正确。如果没有指定out参数,则会返回结果。
返回值
-
res : ndarray
已连接的数组
注意
当要连接的一个或多个数组是MaskedArray时,此函数将返回MaskedArray对象而不是ndarray,但不保留输入掩码。 如果需要MaskedArray作为输入,请使用MaskedArray模块中的ma.concatenate函数。
示例
>>> a = np.array([[1,2], [3,4]])
>>> b = np.array([[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])
>>> a = np.ma.arange(3)
>>> a[1] = np.ma.masked
>>> b = np.arange(2, 5)
>>> a
masked_array(data=[0, --, 2],
mask=[False, True, False],
fill_value=999999)
>>> b
array([2, 3, 4])
>>> np.concatenate([a, b])
masked_array(data=[0, 1, 2, 2, 3, 4],
mask=False,
fill_value=999999)
>>> np.ma.concatenate([a, b])
masked_array(data=[0, --, 2, 2, 3, 4],
mask=[False, True, False, False, False, False],
fill_value=999999)
网友评论