我有一个numpy
数组和该数组中的有效值列表:
import numpy as np arr = np.array([[1,2,0], [2,2,0], [4,1,0], [4,1,0], [3,2,0], ... ]) valid = [1,4]
是否有一种很好的pythonic方法可以将所有数组值设置为零,这些方法不在有效值列表中并就地执行?执行此操作后,列表应如下所示:
[[1,0,0], [0,0,0], [4,1,0], [4,1,0], [0,0,0], ... ]
以下内容在内存中创建了一个数组副本,这对大型数组不利:
arr = np.vectorize(lambda x: x if x in valid else 0)(arr)
它让我烦恼,现在我遍历每个数组元素并将其设置为零(如果它在valid
列表中).
编辑:我找到了一个答案,表明没有就地功能来实现这一目标.也停止改变我的空白.更容易看到arr
它们的变化.