请记住,在 Python 中,由 生成的对象[]
通常称为 a list
,而不是array
。因此,考虑到这一点,我假设您真正的问题是“如何将 4 个独立list
的 python 转换为二维numpy
数组?”
答案取决于您希望如何list
在数组中布置 s。假设每个列表代表一行,您可以这样做:
>>> x = range(0, 4)
>>> y = range(4, 8)
>>> ov = range(8, 12)
>>> aa = range(12, 16)
>>> numpy.array([x, y, ov, aa])
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15]])
或者,如果每个列表代表一列,您可以这样做:
>>> numpy.array(zip(x, y, ov, aa))
array([[ 0, 4, 8, 12],
[ 1, 5, 9, 13],
[ 2, 6, 10, 14],
[ 3, 7, 11, 15]])
然后,您可以像使用 producer 一样使用布尔array
索引genfromtxt
:
>>> a = numpy.array(zip(x, y, ov, aa))
>>> a[a == 1]
array([ 1, 5, 9, 13, 3, 7, 11, 15])
您可能正在寻找将x
、y
、ov
和组合aa
成数组的其他方式。在这种情况下,您将不得不指定列表中的内容以及所需输出的形状。