我有一个2D numpy数组,我想根据两个标准更改一些元素: 第一个标准是条件。 第二个标准基于数组的索引(行号和列号)
例如,请使用以下代码
import numpy as np
#Create an 8x8 array
A = np.arange(64).reshape(8,8)
condition = (A %2 ==0)
B = np.where(condition,0,A)
print B
这有效,但我不想在整个A域应用条件。我只想在用户指定的单元格范围内应用条件,比如前三行和前两列。
如何修改我的代码才能完成此任务?
谢谢! PK
编辑:根据MathDan的建议更新了代码
import numpy as np
#Create an 8x8 array
A = np.arange(64).reshape(8,8)
#Create boolean conditional array
condition = np.zeros_like(A,dtype='bool')
#Enforce condition on the first 4X4 matrix
condition[0:4, 0:4] = (A[0:4, 0:4] % 2 ==0)
B = np.where(condition,0,A)
print B
答案 0 :(得分:1)
尝试(例如):
condition = np.zeros_like(A, dtype='bool')
condition[0:2, 0:1] = (A[0:2, 0:1] % 2 ==0)