2017-03-16 34 views
-1

光柵編碼此,raster_B8a_166 - numpy的陣列(XSIZE/XSIZE)如何在numpy的

for i in range(xsize): 
    for j in range(xsize): 
     if raster[i][j] == 166 and raster_B8a_166[i][j]: 
      raster[i][j] = 39 
     elif raster[i][j] == 166 and raster_B8a_166[i][j] == False: 
      raster[i][j] = 11 

回答

0

這裏是兩個一維陣列的實例。相同的代碼應該適用於一對2D數組。

請注意,對於numpy數組,== 166將返回一個形狀與a相同的真值數組。然後logical_and接受兩個真值數組,執行邏輯和,並返回第三個真值數組。最後,您可以通過將真值數組添加到數組中來返回或設置numpy數組中的特定項目。

import numpy as np 

a = np.array([1, 2, 166, 166]) 
b = np.array([True, False, True, False]) 

a[np.logical_and((a == 166), (b == True))] = 39 
a[np.logical_and((a == 166), (b == False))] = 11 

print(a)