我有一个2D numpy数组的单元素列表:
aaa = np.array(
[[ [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0] ],
[ [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0] ],
[ [0], [4], [4], [4], [4], [4], [4], [4], [4], [4], [4], [4], [4], [4], [4], [4], [4], [4], [4], [4] ] ]
)
如何将内部列表转换为int类型,这样就可以:
nnnn = np.array(
[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
[0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 ]]
)
这听起来很简单,但无论我做了什么,我还是以一个列表结束。
我尝试了sum()
作为对列表中的值求和的技术,但最终只对整个列表求和。
你可以这样做:
nnnn = np.array([l.flatten() for l in aaa])
也可以使用:
nnnn = aaa.reshape(-1, aaa.shape[1])
或者更简单:
nnnn = aaa[:,:,0]
需要注意的是,最后一个解决方案返回的是视图,而不是副本。这意味着您应用于新数组的更改也将反映在旧数组
中。