美文网首页
Numpy中的一些连接函数

Numpy中的一些连接函数

作者: RossH | 来源:发表于2019-08-14 14:45 被阅读0次

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通道(第三轴)的像素数据。函数 concatenatestackblock提供了更常用的堆叠连接操作。

参数

  • 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通道(第三轴)的像素数据。函数 concatenatestackblock提供了更常用的堆叠连接操作。

参数

  • 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通道(第三轴)的像素数据。函数 concatenatestackblock提供了更常用的堆叠连接操作。

参数

  • 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)

相关文章

网友评论

      本文标题:Numpy中的一些连接函数

      本文链接:https://www.haomeiwen.com/subject/cdvgjctx.html