SAR*_*ose 3 python arrays numpy list
应该有办法改变这样的列表:
a = [[1], [2], [3], [4], [5]]
b = [[6], [7], [8], [9], [10]]
Run Code Online (Sandbox Code Playgroud)
这样的事情:
c = [[1, 6], [2, 7], [3, 8], [4, 9], [5, 10]]
Run Code Online (Sandbox Code Playgroud)
现在我正在使用for循环完成此操作.
c = []
for pos in range(len(a)):
c.append([a[pos], b[pos]])
Run Code Online (Sandbox Code Playgroud)
无论如何,for循环很慢,而不是听起来像一个电视购物节目,但必须有一个更好的方式!
一种方法是使用column_stack:
>>> np.column_stack((a, b))
array([[ 1, 6],
[ 2, 7],
[ 3, 8],
[ 4, 9],
[ 5, 10]])
Run Code Online (Sandbox Code Playgroud)
column_stack 首先将列表强制转换为数组并返回一个数组.
由于a和b都是单个元素列表的列表,因此在强制转换为数组时,每个元素都成为2D列向量.因为这个事实,你也可以使用hstack或concatenate实现同样的事情(它们也将列表强制转换为具有我们想要的正确形状的数组).使用np.hstack((a, b))或np.concatenate((a, b), axis=1).
为了完整起见,也可以np.c_通过写作来使用np.c_[a, b].其他方法更直接,但可能更快.
| 归档时间: |
|
| 查看次数: |
3271 次 |
| 最近记录: |