2D numpy数组中的阈值

phy*_*all 9 python numpy

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

kaz*_*ase 21

一个解决方案

result = (array < 25) * array
Run Code Online (Sandbox Code Playgroud)

第一部分array < 25为您提供了一个相同形状的数组,其中值为1(True),其中值小于25,否则为0(False).与原始数组的元素相乘保留小于25的值并将其余值设置为0.这不会更改原始数组

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

array[array >= 25] = 0
Run Code Online (Sandbox Code Playgroud)