2017-03-24 16 views
1

私は2つの平行numpyの配列を持っていると私は-値が3より大きくなっているそれらの要素のみ維持したいと思います:numpyの:フィルタリング並列配列

import numpy as np 

a = np.array([1, 2, 3, 4, 5]) 
b = np.array([0.1, 0.15, -0.3, 23.4, 112.5]) 

c = np.array(list(zip(a, b))) 

c = c[c[:, 0] > 3].T 

a = c[0] 
b = c[1] 

私はそれをどのように行うのですがnumpyの-方法?

あなただけのブール値のインデックスを使用することができます

答えて

2

:最初の行は、実際に実行された場合、二行目の出力を変更(および潜在的に長さのために例外をスローすることを

a[a > 3] 
# array([ 4., 5.]) 

b[a > 3] 
# array([ 23.4, 112.5]) 

a, b = a[a > 3], b[a > 3] 
+0

注意を不一致?) – heyiamt

+1

結果を 'a'に代入しなければ、ブールインデックスは配列内の配列を変更しません。 – Psidom

+0

結果として[23.4,112.5]はbの値が3より大きい唯一の2つであり、b = np.array(['a'、 'b'、 'c'、 'd'、 'e'])は明確にするためのより良い例 – litepresence