非常に簡単な質問ですが、これらのキーワードでは答えが見つかりません。次のことを行うより良い方法は何ですか?
t = linspace(0,1000,300)
x0 = generic_function(t)
x1 = x0[x0>0.8]
t1 = t[t>t[len(x0)-len(x1)-1]]
私が @t1 を使用している操作は、非常に非 Pythonic で非効率的だと思います。ポインタはありますか?
IIUC では、カットされた配列を簡単に再利用できます。例えば:
>>> from numpy import arange, sin
>>> t = arange(5)
>>> t
array([0, 1, 2, 3, 4])
>>> y = sin(t)
>>> y
array([ 0. , 0.84147098, 0.90929743, 0.14112001, -0.7568025 ])
すでに行ったように、bool 配列を作成できます。
>>> y > 0.8
array([False, True, True, False, False], dtype=bool)
そして、これを使用して と の両方をフィルタリングできt
ますy
。
>>> t[y > 0.8]
array([1, 2])
>>> y[y > 0.8]
array([ 0.84147098, 0.90929743])
len
関連する単調性の使用または仮定はありません。