2024-10-04 05:28:01 发布
网友
例如
A = np.arange(24).reshape((2, 3, 4)) print np.einsum('ijk', A)
这仍然没有问题。在
但是如果我做了print np.einsum('kij', A),形状就是(3, 4, 2)。是不是应该是(4, 2, 3)?在
print np.einsum('kij', A)
(3, 4, 2)
(4, 2, 3)
print np.einsum('cab', A)形状的结果是(4, 2, 3)也没有问题。为什么print np.einsum('kij', A)不一样?在
print np.einsum('cab', A)
如果只指定一组下标,则这些下标将解释为输入数组中相对于输出的维度顺序,反之亦然。在
例如:
import numpy as np A = np.arange(24).reshape((2, 3, 4)) B = np.einsum('kij', A) i, j, k = np.indices(B.shape) print(np.all(B[i, j, k] == A[k, i, j])) # True
正如@hpaulj在评论中指出的,通过指定两组下标,可以使输入和输出维度之间的对应关系更加明确:
如果只指定一组下标,则这些下标将解释为输入数组中相对于输出的维度顺序,反之亦然。在
例如:
正如@hpaulj在评论中指出的,通过指定两组下标,可以使输入和输出维度之间的对应关系更加明确:
^{pr2}$相关问题 更多 >
编程相关推荐