0

假设我有一个 5 维矩阵v,现在我想要一个新的矩阵来D实现

D[a, b, n, m, d] = v[a, b, n, n, d]-v[a, b, m, m, d].

我如何在 numpy 中优雅地做到这一点?

4

2 回答 2

0

你想如何改变维度?你可以像这样重塑它

import numpy as np

a, b, n, d = 2, 3, 4, 5
v = np.zeros((a, b, n, n, d))
D = v.reshape((a, b, n*n, d))
于 2016-12-03T09:14:19.137 回答
0

我发现einsum可以这样做:

D = np.einsum('abiic->abic', v)[..., None, :] - np.einsum('abiic->abic', v)[:, :, None, ...]
于 2016-12-03T09:37:44.530 回答