Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何为大于另一个numpy数组中指定的阈值的值设置numpy数组元素的某些值(阈值)?_Arrays_Python 3.x_Numpy - Fatal编程技术网

Arrays 如何为大于另一个numpy数组中指定的阈值的值设置numpy数组元素的某些值(阈值)?

Arrays 如何为大于另一个numpy数组中指定的阈值的值设置numpy数组元素的某些值(阈值)?,arrays,python-3.x,numpy,Arrays,Python 3.x,Numpy,我有一个存储阈值的numpy数组和另一个存储一些值的数组。我希望这些最后的值小于或等于相应的阈值。特别是,如果一个值大于它对应的阈值,我应该用阈值来改变它 下面的例子正好给出了我想要的,但是我想知道是否存在一个更好的方法来实现它,或者是否已经存在一个numpy方法(我搜索了这个方法,但没有找到)来实现它 In [1]: import numpy as np In [2]: a = np.random.rand(10) In [3]: a Out[3]: array([0.38331068,

我有一个存储阈值的numpy数组和另一个存储一些值的数组。我希望这些最后的值小于或等于相应的阈值。特别是,如果一个值大于它对应的阈值,我应该用阈值来改变它

下面的例子正好给出了我想要的,但是我想知道是否存在一个更好的方法来实现它,或者是否已经存在一个numpy方法(我搜索了这个方法,但没有找到)来实现它

In [1]: import numpy as np

In [2]: a = np.random.rand(10)

In [3]: a
Out[3]: 
array([0.38331068, 0.32042463, 0.89980916, 0.86472908, 0.10812789,
       0.35855107, 0.09916983, 0.55710449, 0.38591185, 0.70798023])

In [4]: t = np.array([0.95, 0.9, 0.8, 0.75, 0.7, 0.65, 0.6, 0.55, 0.5, 0.45])

In [5]: mask = a > t

In [6]: a[mask] = t[mask]

In [7]: a
Out[7]: 
array([0.38331068, 0.32042463, 0.8       , 0.75      , 0.10812789,
       0.35855107, 0.09916983, 0.55      , 0.38591185, 0.45      ])
您可以使用:


这意味着,如果我也有一个较低的阈值,我可以做
np.clip(a,a_min=t_min,a_max=t_max)
其中
t_min
包含较低的阈值,而
t_max
包含较高的阈值?确切地说,我认为这与您通常所寻找的大致相同,我等了24小时才接受答复,但我认为情况并非如此。照你的意愿去做吧!很高兴我能帮忙。
>>> np.clip(a,a_min=None,a_max=t)
array([0.38331068, 0.32042463, 0.8       , 0.75      , 0.10812789,
       0.35855107, 0.09916983, 0.55      , 0.38591185, 0.45      ])