我想检查 NumPyArray 中是否包含一组值,如果是,则将该区域设置为数组 = 1。如果没有设置 keepRaster = 2。
numpyArray = #some imported array
repeatSet= ([3, 5, 6, 8])
confusedRaster = numpyArray[numpy.where(numpyArray in repeatSet)]= 1
产量:
<type 'exceptions.TypeError'>: unhashable type: 'numpy.ndarray'
有没有办法循环它?
for numpyArray
if numpyArray in repeatSet
confusedRaster = 1
else
keepRaster = 2
澄清并寻求进一步的帮助:
我正在尝试和目前正在做的是将栅格输入放入数组中。我需要读取二维数组中的值并根据这些值创建另一个数组。如果数组值在集合中,则值为 1。如果不在集合中,则该值将从另一个输入派生,但我现在说 77。这是我目前正在使用的。我的测试输入有大约 1500 行和 3500 列。它总是在第 350 行左右冻结。
for rowd in range(0, width):
for cold in range (0, height):
if numpyarray.item(rowd,cold) in repeatSet:
confusedArray[rowd][cold] = 1
else:
if numpyarray.item(rowd,cold) == 0:
confusedArray[rowd][cold] = 0
else:
confusedArray[rowd][cold] = 2