2016-06-21 7 views
1

で配列の値を置き換えます。私は条件を満たして、配列内の値を置き換えるために、この単純化されたプログラムを持っている状態

formula1=2*2 
formula2=5*2 
formula3=4*4 

array = np.random.rand(2,4,10) 
for n,i in enumerate(array): 
    if i>0.5: #find value in array with this condition 
     formula = formula1 
     array[n] = array[n]*formula #replace the found value with this value 
    elif i <0.1: 
     formula = formula2 
     array[n] = array[n]*formula 
    else: 
     formula = formula3 
     array[n] = array[n]*formula 
print array  

これは、エラーメッセージが表示されました: 'が複数の要素を持つ配列の真理値がありますあいまいなa.any()またはa.all() 'を使用します。なにか提案を?配列を列挙する

+0

あなたは完全なトレースバックを追加することはできますか? – syntonym

+0

iシンセサイザーの場合、i <0.5: ValueError:複数の要素を含む配列の真理値はあいまいです。 a.any()またはa.all()を使用する –

+0

forループでは、 'i'は配列です。配列が指定された値よりも小さいかどうかをどのように判断しますか? 'any()'は、配列中の要素のいずれかが指定された値よりも小さいかどうかをチェックし、 'all()'がすべての要素が – SvbZ3r0

答えて

3

、あなたはnp.ndenumeratedocumentation here)を使用することができます。

for n, i in np.ndenumerate(array): 
    ... 
+0

うわー。私のための新しい構文、それは動作します。ありがとうございました。 –

関連する問題