计算机@linux_python_R 技术帖

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

2019-03-04  本文已影响0人  273e06961fbe

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

需要注意的一个关键区别是与其他两种方法不同,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.

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

两种用法:

如果使用第二种用法,切片表示的语法为(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]])





上一篇下一篇

猜你喜欢

热点阅读