我想用 numpy 有效地得到兩個陣列的最小值之和。例如;
X=np.array([[1,2,3],[1,2,0]])
Y=np.array([[0,2,0],[1,3,1]])
我的結果應該是;
result = array([[2, 4],[2, 3]])
第一個單元格的計算;
result[0,0] = min(X[0,0],Y[0,0]) min(X[0,1],Y[0,1]) min(X[0,2],Y[0,2])
一般來說,結果應該是:
res[i,j] = sum(np.minimum(X[i, :], Y[j, :]))
但尋找最快的方式。
uj5u.com熱心網友回復:
我能做的最好的:
import numpy as np
def sum_mins(x, y):
mask = (X - Y) < 0
return np.sum(X*mask Y*np.logical_not(mask))
X=np.array([1,2,3])
Y=np.array([0,2,0])
print(sum_mins(X, Y))
uj5u.com熱心網友回復:
一種接近定義的幼稚方法:
result = np.array([[np.sum(np.minimum(v_x, v_y)) for v_y in Y] for v_x in X])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/415596.html
標籤:
