将列表的numpy数组转换为int数组



我有一个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]

需要注意的是,最后一个解决方案返回的是视图,而不是副本。这意味着您应用于新数组的更改也将反映在旧数组

中。

最新更新