所以我有一个非常大的 Numpy 数组(2560x1920)。它实际上来自灰度图片,其中每个像素都有一个 0-1 的数字,表示其亮度。

我试图用零替换低于阈值的所有值,比如 0.5。
这可能是一项简单的任务,但我是 Numpy 的初学者,我四处搜索,但仍然无法弄清楚。

这是我尝试过的,我知道这是错误的......

for x in np.nditer(Image):
    if x < .5:
        x == 0

plt.imshow(Image, cmap=plt.cm.gray)
plt.show()

它只是输出正常的图像而不改变任何东西。

数组也看起来像这样(明显缩写):
[[ 0.24565263  0.24565263  0.24902149 ...,  0.27528678  0.27265316
   0.27606536]
 [ 0.24565263  0.24565263  0.24902149 ...,  0.27870309  0.27606536
   0.27948296]
 [ 0.24228902  0.24228902  0.24565263 ...,  0.28212482  0.27948296
   0.282906  ]
 ...,
 [ 0.29706944  0.29706944  0.29706944 ...,  0.17470162  0.17144636
   0.17144636]
 [ 0.29362457  0.29362457  0.29362457 ...,  0.17144636  0.16495056
   0.16170998]
 [ 0.2901852   0.2901852   0.2901852  ...,  0.16819602  0.16170998
   0.15847427]]

最佳答案

numpy 的内置索引可用于替换元素。这可以通过以下方式完成:

Image[Image<0.5] = 0

10-06 00:55