我有一个形状为(n,d)的矩阵Y。 我已经按以下方式计算了成对行差:
I, J = np.triu_indices(Y.shape[0], 0)
rowDiffs = (Y[I, :] - Y[J, :])
我想创建一个三维数组,包含Y中第i行和第j行在位置(i,j,:)的差异。你会如何做?
其目的是替换这个效率低下的循环:
for i in range(Y.shape[0]):
for j in range(Y.shape[0]):
C[i,:] = C[i,:] + W[i, j] * (Y[i, :]-Y[j, :])