ここで、 'absent'はnan
またはnp.masked
のいずれかを意味することがあります。例えば配列内の現在の値を存在しない配列に効率的に「伸ばす」
:
>>> from numpy import nan
>>> do_it([1, nan, nan, 2, nan, 3, nan, nan, 4, 3, nan, 2, nan])
array([1, 1, 1, 2, 2, 3, 3, 3, 4, 3, 3, 2, 2])
# each nan is replaced with the first non-nan value before it
>>> do_it([nan, nan, 2, nan])
array([nan, nan, 2, 2])
# don't care too much about the outcome here, but this seems sensible
私はあなたがforループでこれを行うだろうとどのように見ることができます。
def do_it(a):
res = []
last_val = nan
for item in a:
if not np.isnan(item):
last_val = item
res.append(last_val)
return np.asarray(res)
はそれをベクトル化するより高速な方法はありますか?
うーん、xが2dの場合、これはうまくいかないが、それは私が尋ねたものではなかったと思う。 – Eric
@エリック:うーん、2次元入力にしたいものは何か分からない。 – user2357112
1dと同じように各行を独立して扱いたいと思っています – Eric