2016-10-28 17 views
0

データを抽出するために配列をループしていますが、速度が遅すぎます。これをより速く行うnumpyの関数はありますか?配列内の配列の値に基づいて新しい配列を作成する必要があります。Numpy、配列内の配列に基づく新しい配列

たとえば、米国で作られた車でアレイを作成します。文字列DTYPEの配列を想定し

input: array = [['ford', 'USA'], ['volkswagen', 'Germany'], ['jeep', 'USA']] 

    output: new_array = [['ford', 'USA'], ['jeep', 'USA']] 

答えて

1

、あなたは第二のカラムをスライスし、ブール配列を取得するために、文字列'USA'と比較することができます。このブール値配列は、boolean-indexingを使用して配列への索引付けに使用して、有効な行を選択し、希望の出力を与えることができます。

したがって、実装が簡単になります -

array[array[:,1] == 'USA'] 
+0

ありがとうございました! @Divakar – elfving

+0

2つの値に基づいた結果が必要な場合はどうすれば書けますか?例 'jeep'と 'USA'の場合 – elfving

+0

@elfving 'np.in1d'を使用してください。 – Divakar