2016-04-19 120 views
3

我有一个形状为512x512的数组,其中包含第i和第j个位置的0到100之间的数字。现在我想在其他地方选择数组[i,j] < 25。我已经尝试过array = array[where(array<25)],它给了我一个一维数组,但我想要2D。请帮我解决这个问题。二维numpy阵列的阈值

+0

的可能的复制[设置numpy的数组元素到零,如果它们低于特定阈值(https://stackoverflow.com/questions/28430904/set-numpy-array-elements-to-零IF-它们-是-低于一个特定的阈值) – jdhao

回答

3

一种解决方案:

result = (array < 25) * array 

第一部分array < 25给你相同的形状即1(真),其中值小于25和0(假),否则的阵列。与原来的阵列逐元素乘法保留是小于25的值,并设置其余为0。这不改变原始数组

另一种可能性是设置是> = 25至零的所有值原始数组: