1 np.column_stack
最简单的一种方法
将多个一维数据按【列】合并为二维数组
import numpy as np# a b 都是一维数组
a = np.array((1,2,3))
b = np.array((2,3,4))# 变成二维
merge = np.column_stack((a,b))
# array([[1, 2],[2, 3],[3, 4]])
2 np.hstack
尽管该函数也是对【列】进行stack,但对多个一维数组而言,stack只是在一维上,没有增加【列数】;对于多个二维数组而言,stack才能增加列数
# 此时a和b是一维数组
a = np.array((1,2,3))
b = np.array((4,5,6))c = np.hstack((a,b))
# array([1, 2, 3, 4, 5, 6])aa = np.array([[1],[2],[3]])
bb = np.array([[4],[5],[6]])
# 此时aa和bb的shape是(3, 1) 二维数组
cc = np.hstack((aa,bb))
# array([[1, 4],
# [2, 5],
# [3, 6]])
当然,我们也可以利用np.hstack
进行将一维数组合并为二维数组,对一维数组先进行reshape
a = np.array((1,2,3))
b = np.array((4,5,6))
# 进行reshape 变成二维(3, 1)
a = np.reshape(a, (-1,1))
b = np.reshape(b, (-1,1))c = np.hstack((a,b))
# array([[1, 4],
# [2, 5],
# [3, 6]])
3 总结
np.column_stack
和np.hstack
都可以实现一维数组合并为二维数组- 使用
np.hstack
可能需要np.reshape
np.column_stack
最简单!
学习链接:
- numpy.column_stack — NumPy v1.26 Manual