新しい2次元配列を初期化するために使用する3次元配列が3つあります。 新しい2d配列には、他の3つの配列の(x、y)位置の値に応じて、位置(x、y)に0または1のいずれかを設定する必要があります。他の配列のしきい値に基づいて新しい2次元配列を作成する
例えば、私は、これらの3二次元配列を有する:
A = [[2, 3, 6], B = [[5, 9, 0], C = [[2, 7, 6],
[9, 8, 3], [2, 4, 3], [2, 1, 6],
[1, 0, 5]] [4, 5, 1]] [4, 6, 8]]
AND論理関数:今
D = [[0, 0, 1],
[0, 0, 0],
[0, 0, 1]]
:
D = (A > 4 && B < 5 && C > 5)
これは、2Dアレイを作成する必要があります私は2つのループを使ってこれを行うことができますが、より速いnumpyの方法があるかどうか疑問に思っていましたか?
EDIT:
ここに私の実際のコードのサンプルです:
val_max = 10000
a = np.asarray(array_a)
b = np.asarray(array_b)
d = ((a >= val_max) and (b >= val_max)).astype(int)
しかし、私はこのエラーを取得:EDIT2
Traceback (most recent call last):
File "analyze.py", line 70, in <module>
d = ((a >= val_max) and (b >= val_max)).astype(int)
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
を:
私は使用する必要があります代わりにand
のD &
オペレータ(のための同様の '|' or
対)
http://stackoverflow.com/questions/21996661/combining-logic-statements-and-in-numpy-arrayでも解決できる場合があります。 –