2 回答

TA貢獻(xiàn)1850條經(jīng)驗 獲得超11個贊
根據(jù)我對這個問題的理解,問題似乎在于您計算向量范數(shù)的方式,而不是減法。使用您的示例,但計算exp(-||x-c||),請嘗試:
x = np.linspace(8,17,10).reshape((5,2))
c = np.linspace(1,6,6).reshape((3,2))
sub = np.linalg.norm(x[:,None] - c, axis=-1)
np.exp(-sub)
array([[ 5.02000299e-05, 8.49325705e-04, 1.43695961e-02],
[ 2.96711024e-06, 5.02000299e-05, 8.49325705e-04],
[ 1.75373266e-07, 2.96711024e-06, 5.02000299e-05],
[ 1.03655678e-08, 1.75373266e-07, 2.96711024e-06],
[ 6.12664624e-10, 1.03655678e-08, 1.75373266e-07]])
np.exp(-sub).shape
(5, 3)
numpy.linalg.norm 將嘗試在其輸入的所有維度上返回某種矩陣范數(shù),除非您明確告訴它哪個軸代表向量分量。

TA貢獻(xiàn)1875條經(jīng)驗 獲得超5個贊
我明白了,試試這是否給出了預(yù)期的結(jié)果,但仍然存在結(jié)果具有相同形狀的問題x:
import numpy as np
x = np.arange(10).reshape(5,2)
c = np.arange(6).reshape(3,2)
c_col_sum = np.sum(c, axis=0)
for (h,k), value in np.ndenumerate(x):
x[h,k] = c.shape[0] * x[h,k] - c_col_sum[k]
最初x是:
[[0 1]
[2 3]
[4 5]
[6 7]
[8 9]]
并且c是:
[[0 1]
[2 3]
[4 5]]
之后函數(shù)x變成:
[[-6 -6]
[ 0 0]
[ 6 6]
[12 12]
[18 18]]
添加回答
舉報