我有 2 個形狀相同的陣列。如果bList陣列對應的aList陣列元素的值為255,則在陣列中找到對應的位置,將aList陣列中符合條件的元素相加a計算平均值。
我想我可以用回圈來做到這一點,但我認為這很愚蠢。
import numpy as np
aList = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])
bList = np.array([[255,255,0,255], [0,0,255,255], [255,0,0,0]])
sum_list = []
for id,row in enumerate(aList):
for index,ele in enumerate(row):
if bList[id][index]==255:
tmp = aList[id][index]
sum_list.append(tmp)
average = np.mean(sum_list) #(1 2 4 7 8 9)/6 #5.166666666666667
有沒有更簡單的方法?
uj5u.com熱心網友回復:
采用numpy.where
np.mean(aList[np.where(bList==255)])
或使用布爾掩碼:
mask = (bList==255)
(aList*mask).sum()/mask.sum()
輸出:5.166666666666667
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/430699.html
上一篇:使用numpy組合2個陣列
