1

同じ長さの 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]

しかし、それは私が望む値を私に与えません。どうすれば問題を解決できますか?

4

4 に答える 4

3

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])

その後、コードは期待どおりに動作するはずです。

于 2013-05-31T11:02:36.600 に答える
1

どうですか

[b for (a,b) in zip(x,y) if a==100]

また

itertools.compress(y, [a==100 for a in x])
于 2013-05-31T10:52:52.107 に答える
0

両方を反復し、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]
于 2013-05-31T10:52:02.557 に答える