我有一份清单:
rs = list([[(0, 167, 159, 0), (1, 168, 160, 1)], [(0, 167, 159, 1), (1, 168, 160, 0)]])
我希望以矩阵形式将其排列成numpy数组,因此我编写了以下代码:
import numpy
rs = list([[(0, 167, 159, 0), (1, 168, 160, 1)], [(0, 167, 159, 1), (1, 168, 160, 0)]])
k = 2
j = 0
h = 0
ars = []
element = list(rs)
ck_dist_m = numpy.array([[]], ndmin = 2)
while j <= k - 1:
while h <= k - 1:
rp = numpy.array(element[j][h][3], ndmin = 2)
ars.append(rp)
h = h + 1
else:
h = 0
ck_dist_m = numpy.vstack(ars)
j = j + 1
print ck_dist_m
我希望结果是:
[[0, 1],
[1, 0]]
但是上面的脚本给出了这个:
[[0]
[1]
[1]
[0]]
如何编辑脚本以获得矩阵形式的结果?
答案 0 :(得分:4)
在while循环中,我提取子列表中的第三个元素,并尝试以矩阵形式存储它们。
这是实现这一目标的更直接的方法:
>>> numpy.array(rs)[:,:,3]
array([[0, 1],
[1, 0]])