如何在 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. ])
我有一个值数组,我想将特定值设置为整数。低于 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. ])