我试图在一个特定的索引处分配一个值,给一个numpy向量,我首先要在其上应用一个布尔掩码(严格来说,我希望索引引用“ masked”数组)。但是,令人惊讶的是,以下内容似乎无效:
假设我要更改“有效”向量的第一个值(掩码为True的那个值),即向量的第二个“绝对”值。
import numpy as np
x = np.full(4, np.nan)
mask = np.array([False, True, True, True])
index = 0
x[mask][index] = 3
x
>>> array([nan, nan, nan, nan])
我究竟做错了什么?
在index
为你的索引做完面膜在年底将被视为,这里是证明:
>>> x[mask]
array([ nan, nan, nan])
>>> x[mask][index]
nan
>>>
因此,实际上是将更nan
改为3
,但该nan
位置未存储在任何地方,因此使用:
x[np.where(mask)[0][index]] = 3
print(x)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句