gpt4 book ai didi

python - 根据python中的逻辑数组设置数组的值

转载 作者:太空宇宙 更新时间:2023-11-04 10:22:11 24 4
gpt4 key购买 nike

我有一个数组 a=np.array([ -1, 20, 34, 4, 5, -60, -7, 8]) ,我想用这种方式测试2个条件:p=np.logical_or(a<=5, a>=25) .以这种方式,我有一个逻辑数组 (True-False, 0-1) .现在我想将满足 p 的 True 条件的数组 a 的值设置为预定义的值,例如 NaN。

p
array([ True, False, True, True, True, True, True, False], dtype=bool)

我要:

value=array([NaN, 20, NaN, NaN, NaN, NaN, NaN, 8])

我怎样才能做到?

最佳答案

使用numpy.where :

>>> np.where((a<=5) | (a>=25), np.nan, a)
array([ nan, 20., nan, nan, nan, nan, nan, 8.])
>>> p = np.logical_or(a<=5, a>=25)
>>> np.where(p, np.nan, a)
array([ nan, 20., nan, nan, nan, nan, nan, 8.])

或者使用 a 创建一个新的 float 类型的数组,并使用 pnp.nan 分配给它的索引:

>>> a_ = a.astype(float)
>>> a_[p] = np.nan
>>> a_
array([ nan, 20., nan, nan, nan, nan, nan, 8.])

关于python - 根据python中的逻辑数组设置数组的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31657108/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com