2017-01-27 9 views
1

私のプログラムには、さまざまなNumPy配列が含まれています。アレイの例がある:別のアレイからPython - 複数の条件が満たされているNumPy配列の行を選択してください

x = [5, 'ADC01', Input1, 25000], # Where [TypeID, Type, Input, Counts] 
    [5, 'ADC01', Input2, 40000] 

IはTypeInputの値を取得することができます。私はその後、

Counts = x[0,3] where Type = 'ADC01' and Input = 'Input2'

は明らかに、それはこのように書いたことはないと言う必要があります。私は一つだけ条件を満足する必要があった時代には、私が使用している:ここで

InstType_ID = int(InstInv_Data[InstInv_Data[:,glo.inv_InstanceName] == Instrument_Type_L][0,glo.inv_TypeID]) 

を、それはInstanceNameは "列に配列(InstInv_Data)で検索し、INSTRUMENT_TYPEに一致するものを見つけました。次に、 'TypeID'列をInstType_IDに割り当てます。私は基本的にandステートメントを追加して、別の列にある別の一致するデータを探します。

編集:私はちょうど私が2つの別々のステップでこれを試してやることができると思った。 InputCounts列の両方を返します。Type-Column = Typeです。しかし、実際には特定の列ではなく2つの列を返す方法がわかりません。このような何か:

Intermediate_Counts = (InstDef_Data[InstDef_Data[:,glo.i_Type] == Instrument_Type_L][0,(glo.i_Input, glo.i_Counts]) 

答えて

3

あなたは要素単位のAND 2つのブール配列aに対して実行するa & bを使用することができ、b

selected_rows = x[(x[:,1] == 'ADC01') & (x[:,2] == 'Input2')] 

は同様に、NOTのためのORため a | b~aを使用しています。

+0

ありがとう、私はこれに似た何かをしようとしましたが、括弧を入れる場所と混同しました。それは素晴らしい仕事でした! –

関連する問題