我有一个3d numpy数组A。不同元素的大小彼此不相等,即shape(A [0])=(1,2),shape(A [1])=(3,4 )等。我想以最有效的方式将A的所有元素的值设置为零。我怎样才能做到这一点?
谢谢!
您所拥有的是一个np.array
包含对象的对象-在您的特定情况下,那些对象是包含更多列表的列表。除非您确实需要向内部列表中添加大量元素,否则对于任何我能想到的东西来说,这都不是一个非常好的数据结构。我可能会建议稍作更改以np.array
使其拥有更多np.array
s?
A = np.array(map(np.array, [ [[1,2],[3,4]], [[1,2,3],[4,5,6],[7,8,9]] ] ))
现在,如果我们打印出来,它看起来像这样:
>>> A
array([[[1 2]
[3 4]], [[1 2 3]
[4 5 6]
[7 8 9]]], dtype=object)
并将其设置为0变得特别容易:
for sub_array in A:
sub_array[...] = 0
为了证明(A
再次打印):
>>> A
array([[[0 0]
[0 0]], [[0 0 0]
[0 0 0]
[0 0 0]]], dtype=object)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句