同じ長さの 2 つの配列があります。
x = [2,3,6,100,2,3,5,8,100,100,5]
y = [2,3,4,5,5,5,2,1,0,2,4]
この方法で x==100 の位置を選択しました。
x==100 の y の値をどのように取得できますか? (つまり、y=5,0,2)? 私はこのようにしてみました:
x100=np.where(x==100)
y100=y[x100]
しかし、それは私が望む値を私に与えません。どうすれば問題を解決できますか?
x と y は numpy 配列でなければなりません:
x = np.array([2,3,6,100,2,3,5,8,100,100,5])
y = np.array([2,3,4,5,5,5,2,1,0,2,4])
その後、コードは期待どおりに動作するはずです。
どうですか
[b for (a,b) in zip(x,y) if a==100]
また
itertools.compress(y, [a==100 for a in x])
両方を反復し、100 を確認します。
x = [2,3,6,100,2,3,5,8,100,100,5]
y = [2,3,4,5,5,5,2,1,0,2,4]
for xi, yi in zip(x, y):
if xi == 100:
print(yi)
版画:
5
0
2
またはリスト内包表記として:
>>> [yi for xi, yi in zip(x, y) if xi == 100]
[5, 0, 2]