【发布时间】:2019-11-21 16:08:26
【问题描述】:
这与this question 几乎相同,但在 numpy 中,以及针对某些维度的矩阵:
我有两个长度为 n 的矩阵,例如 A 和 B,
n = 1000
A = np.random.rand(n, 3, 4, 5)
B = np.random.rand(n, 3, 4, 5)
我想要一个新矩阵 C,其中每个元素 (C[i]) 都是形状为 (2, 3, 4, 5) 的矩阵:C[i][0] 是 A[k],C[i][0] 是 B[k] 对于某些 @987654334 @,其中来自A 和B 的元素为另一个中的每个其他元素选择一次。
一个更具体的例子:
A = [elem1, elem2, elem3]
B = [elem4, elem5, elem6]
然后
C = [
[elem1, elem4],[elem1, elem5],[elem1, elem6],
[elem2, elem4],[elem2, elem5],[elem2, elem6],
[elem3, elem4],[elem3, elem5],[elem3, elem6]
]
我知道我可以使用 itertools 来构建它,但我认为它已经存在,而且速度更快。
【问题讨论】:
-
在此处查看解决方案:stackoverflow.com/questions/58971397/… 它可能对您有所帮助!
-
您描述的是笛卡尔积,而不是叉积(可能是您自己没有找到解决方案的原因)。 This beautiful SO post 提供了一个带有 numpy-builtins 的解决方案以及作者所谓的“几乎规范的笛卡尔积”的丰富实现
-
发布的解决方案对您有用吗?
-
@divakar 将在周日我回来工作时检查。别担心
-
@Gulzar 温馨提示 - 发布的解决方案对您有用吗?