我有4个形状相同的numpy数组(即2d)。我需要知道最后一个数组(d)中小于20的元素的索引,但这些d的索引应位于数组(a)元素为1的区域内;同时数组(b)和(c)的元素不为1。
我的尝试如下:
现在,我需要将d的这些区域设置为1;并将d的所有其他区域设置为0。
我无法解决这个问题。你怎么解决的?
我的尝试如下:
mask = (a == 1)|(b != 1)|(c != 1)
answer = d[mask | d < 20]
现在,我需要将d的这些区域设置为1;并将d的所有其他区域设置为0。
d[answer] = 1
d[d!=1] = 0
print d
我无法解决这个问题。你怎么解决的?
import numpy as np
a = np.array([[0,0,0,1,1,1,1,1,0,0,0],
[0,0,0,1,1,1,1,1,0,0,0],
[0,0,0,1,1,1,1,1,0,0,0],
[0,0,0,1,1,1,1,1,0,0,0],
[0,0,0,1,1,1,1,1,0,0,0],
[0,0,0,1,1,1,1,1,0,0,0]])
b = np.array([[0,0,0,1,1,0,0,0,0,0,0],
[0,0,0,0,0,0,1,1,0,0,0],
[0,0,0,1,0,1,0,0,0,0,0],
[0,0,0,1,1,1,0,1,0,0,0],
[0,0,0,0,0,0,1,0,0,0,0],
[0,0,0,0,1,0,1,0,0,0,0]])
c = np.array([[0,0,0,0,0,0,1,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,1,1,0,0,0],
[0,0,0,0,0,0,1,0,0,0,0],
[0,0,0,0,1,0,0,0,0,0,0],
[0,0,0,0,0,1,0,0,0,0,0]])
d = np.array([[0,56,89,67,12,28,11,12,14,8,240],
[1,57,89,67,18,25,11,12,14,9,230],
[4,51,89,87,19,20,51,92,54,7,210],
[6,46,89,67,51,35,11,12,14,6,200],
[8,36,89,97,43,67,81,42,14,1,220],
[9,16,89,67,49,97,11,12,14,2,255]])
|
不会导致语法错误,但会导致逻辑错误)。 - YS-L