2016-05-23 2 views
1
for i in range(x): 
    for j in range(y): 
     for k in range(z): 
      if arr[i][j][k] != 0: 
       arr[i][j][k] = 1 

は、私は3Dの配列を横断していますし、任意の値が1に等しくない場合、私はあなたがnumpyを使用している場合は、単に書く1これは、これらのネストされたループを実行する最も効率的な方法でしょうか?

+0

x、y、zとは何ですか?これらは各次元の長さですか? – AKS

+0

はい、各寸法の長さを指します。 – hashcoding

答えて

4

にそれを変更したいと思います:

arr[arr!=0] = 1 

またはあなただけのブール配列が必要な場合:あなたは、他の側で、リストのリストのリストを持っている場合は

result = arr!=0 

を:

for plane in arr: 
    for row in plane: 
     row[:] = [int(item!=0) for item in row] 
関連する問題