当前位置:  开发笔记 > 编程语言 > 正文

如何使用NumPy从列表创建多维数组?

如何解决《如何使用NumPy从列表创建多维数组?》经验,为你挑选了1个好方法。

应该有办法改变这样的列表:

a = [[1], [2], [3], [4], [5]]
b = [[6], [7], [8], [9], [10]]

这样的事情:

c = [[1, 6], [2, 7], [3, 8], [4, 9], [5, 10]]

现在我正在使用for循环完成此操作.

c = []
for pos in range(len(a)):
    c.append([a[pos], b[pos]])

无论如何,for循环很慢,而不是听起来像一个电视购物节目,但必须有一个更好的方式!



1> Alex Riley..:

一种方法是使用column_stack:

>>> np.column_stack((a, b))
array([[ 1,  6],
       [ 2,  7],
       [ 3,  8],
       [ 4,  9],
       [ 5, 10]])

column_stack 首先将列表强制转换为数组并返回一个数组.

由于ab都是单个元素列表的列表,因此在强制转换为数组时,每个元素都成为2D列向量.因为这个事实,你也可以使用hstackconcatenate实现同样的事情(它们也将列表强制转换为具有我们想要的正确形状的数组).使用np.hstack((a, b))np.concatenate((a, b), axis=1).

为了完整起见,也可以np.c_通过写作来使用np.c_[a, b].其他方法更直接,但可能更快.

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有