gpt4 book ai didi

python - 在没有显式复制的情况下使用 einsum

转载 作者:太空宇宙 更新时间:2023-11-04 03:20:14 24 4
gpt4 key购买 nike

我有一个形状为 (n, n) 的矩阵 A 和另一个形状为 (p, n) 的矩阵 b。我需要得到一个矩阵 C 使得

C[i] = (A * b[i, np.newaxis, :]) * b[i, :, np.newaxis]

我目前通过执行 np.matlib.repmat(A) 然后使用 np.einsum 来做到这一点,如下所示

A1 = np.matlib.repmat(A, p, 1).reshape(p, n, n)
C = np.einsum('ijk, ij..., ik... -> ijk', A1, b, b)

但我可以看到创建 A1 是一种资源浪费,因为它只是一遍又一遍地使用相同的值。无论如何,我可以在不创建中间矩阵 A1 的情况下做到这一点吗?

最佳答案

使用np.einsum像这样 -

np.einsum('ij,kij,kij->kij',A,b[:,None,:],b[...,None])

关于python - 在没有显式复制的情况下使用 einsum,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34918294/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com