美文网首页计算机@linux_python_R 技术帖
Concatenate两个Numpy Arrays的三种办法(n

Concatenate两个Numpy Arrays的三种办法(n

作者: 273e06961fbe | 来源:发表于2019-03-04 20:28 被阅读0次
    • 方法 1:np.concatenate
    • 方法 2:np.vstack 和 np.hstack
    • 方法 3:np.r_ 和 np.c_

    所有的三种方法都会提供相同的输出。

    需要注意的一个关键区别是与其他两种方法不同,np.r_和np.c_都用方括号来堆叠数组。

    np.concatenate((a1,a2,...), axis=0, out=None)

    Join a sequence of arrays along an existing axis.
    沿着给定的(axis=0 by default)axis加入一系列数组

    参数:

    • a1,a2,... : 相同shape的一系列数组
    • axis : 数组将要连接的axis,默认为0
    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],  bjknjk6fg67
             [3, 4, 6]])
    
    np.concatenate((a, b), axis=None)
    
    > array([1, 2, 3, 4, 5, 6])
    

    np.hstack()

    Stack arrays in sequence horizontally(column wise).
    沿水平方向堆叠数组。

    a = np.array((1,2,3))
    b = np.array((2,3,4))
    np.hstack((a,b))
    
    > array([1, 2, 3, 2, 3, 4])
    
    a = np.array([[1],[2],[3]])
    b = np.array([[2],[3],[4]])
    np.hstack((a,b))
    
    > array([[1, 2],
             [2, 3],
             [3, 4]])
    

    np.vstack()

    Stack arrays in sequence vertically (row wise).
    沿垂直方向堆叠数组。

    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([[2], [3], [4]])
    np.vstack((a,b))
    
    > array([[1],
             [2],
             [3],
             [2],
             [3],
             [4]])
    

    np.r_

    Translates slice objects to concatenation along the first axis.

    There are two use cases.

    • If the index expression contains comma separated arrays, then stack them along their first axis.
    • If the index expression contains slice notation or scalars then create a 1-D array with a range indicated by the slice notation.

    按行叠加矩阵或者切片对象。

    两种用法:

    • 如果索引包含逗号分隔的数组,则按行叠加
    • 如果索引包含切片表示或者标量, 则创建一个切片表示指示范围的一维数组

    如果使用第二种用法,切片表示的语法为(start:stop:step)。但是,如果step是虚数(i.e. 100j),那么整数部分可以解读为所需的点数,而且包含start和stop。

    np.r_[np.array([1,2,3]), 0, 0, np.array([4,5,6])]
    
    > array([1, 2, 3, 0, 0, 4, 5, 6])
    
    np.r_[-1:1:6j, [0]*3, 5, 6]
    
    > array([-1. , -0.6, -0.2,  0.2,  0.6,  1. ,  0. ,  0. ,  0. ,  5. ,  6. ])
    

    np.c_

    按列叠加矩阵。

    np.c_[np.array([1,2,3]), np.array([4,5,6])]
    
    > array([[1, 4],
             [2, 5],
             [3, 6]])
    
    np.c_[np.array([[1,2,3]]), 0, 0, np.array([[4,5,6]])]
    
    > array([[1, 2, 3, 0, 0, 4, 5, 6]])
    
    
    
    
    
    

    相关文章

      网友评论

        本文标题:Concatenate两个Numpy Arrays的三种办法(n

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