根据数组索引搜索Numpy数组

时间:2014-06-27 16:56:17

标签: python search numpy conditional-statements

我有一个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

1 个答案:

答案 0 :(得分:1)

尝试(例如):

condition = np.zeros_like(A, dtype='bool')
condition[0:2, 0:1] = (A[0:2, 0:1] % 2 ==0)