我想使用“ref”列表替换“data”数组的值:
import numpy as np
data = np.array([[1, 1 , 0 , 0 , 0 , 0 , 1 , 0],
[1, 1 , 1 , 1 , 9 , 1 , 1 , 0],
[1, 1 , 1 , 1 , 1 , 1 , 1 , 0],
[0, 0 , 1 , 1 , 1 , 1 , 1 , 0],
[0, 0 , 1 , 1 , 1 , 1 , 1 , 1],
[1, 1 , 1 , 1 , 1 , 1 , 1 , 0],
[1, 1 , 0 , 0 , 0 , 0 , 0 , 0],
[1, 1 , 0 , 0 , 0 , 0 , 1 , 0],
[1, 1 , 1 , 15 , 1 , 1 , 1 , 0],
[1, 1 , 1 , 1 , 1 , 1 , 1 , 0],
[0, 0 , 1 , 1 , 1 , 1 , 1 , 0],
[0, 0 , 1 , 1 , 12 , 1 , 1 , 1],
[1, 1 , 1 , 1 , 1 , 1 , 1 , 0],
[1, 1 , 0 , 0 , 0 , 0 , 0 , 0]])
ref = [9,12]
我试着:
data[data==ref] = 0
print data
但没有变化。你知道吗
预期数组中的9和12值应替换为0。 最快的方法是什么?你知道吗
遍历numpy数组非常慢,比遍历Python列表慢一个数量级。你知道吗
使用以下构造,您可以使用
numpy.in1d()
方法(http://docs.scipy.org/doc/numpy/reference/generated/numpy.in1d.html)将所有内容都保存在numpy中以下内容将
ref
中的所有元素设置为-1,并将其简单地更改为设置为0另一种方法是:
您可以在值上循环并使用
np.where
屏蔽数组以设置值:失败的原因:
如果将数组与一个列表进行比较,会得到一个
False
的标量布尔值,这就是为什么它什么也不做的原因。你知道吗只是为了证明@haave的答案是有效的,在我看来,洋葱更好:
相关问题 更多 >
编程相关推荐