如何在 numpy 数组中设置阈值?

How to set threshold values in a numpy array?

我有一个值数组,我想将特定值设置为整数。低于 0.95 的值设置为 0,高于 1.6 的值设置为 2。如何将 0.95 和 1.6 之间的所有值设置为 1?

n1_binary = np.where(n1_img_resize < 0.95, 0, n1_img_resize)
n1_binary = np.where(n1_binary > 1.6, 2, n1_binary)

试试这个:

a = np.array([0.3, 5, 7, 2])
a[a < 0.95] = 0
a[a > 1.6] = 1

这非常简洁明了,准确地说明了您在做什么。 a 现在是:

[0.0, 1.0, 1.0, 1.0]

像这样在一行中使用 np.where:

n1_binary = np.where((n1_binary > 0.95) & (n1_binary <= 1.6), 1, n1_binary)

检查以下示例:

In [652]: a = np.array([0.99, 1.23, 1.7, 9])    
In [653]: a = np.where((a > 0.95) & (a <= 1.6), 1, a)

In [654]: a
Out[654]: array([1. , 1. , 1.7, 9. ])