首页 > 解决方案 > 如何在 numpy 数组中设置阈值?

问题描述

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

标签: pythonnumpywhere-clausethreshold

解决方案


像这样在一行中使用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. ])

推荐阅读