【发布时间】:2016-09-19 17:35:25
【问题描述】:
希望尽快进行此计算。我有 X 作为 n x m numpy 数组。我想将 Y 定义为:
Y_11 = 1 / (exp(X_11-X_11) + exp(X_11-X_12) + ... exp(X_11 - X_1N) ).
或为 Y_00
1/np.sum(np.exp(X[0,0]-X[0,:]))
所以基本上,Y 也是 n x m,其中 i,j 元素是 1 / sum_j' exp(X_ij - X_ij')
任何提示都会很棒!谢谢。
请求的示例代码:
np.random.seed(111)
J,K = 110,120
X = np.random.rand(J,K)
Y = np.zeros((J,K))
for j in range(J):
for k in range(K):
Y[j,k] = 1/np.sum(np.exp(X[j,k]-X[j,:]))
# note each row will sum to 1 under this operation
np.sum(Y,axis=1)
【问题讨论】:
-
exp调用在您的第二个表达式中去了哪里? -
感谢您发现我放弃了 exp()。我还添加了一些代码。
-
这是一个很好的问题。将来,如果你能像现在这样提前写东西,那就太好了。
标签: python performance numpy sum numpy-einsum