gpt4 book ai didi

python - 对角阵列上的 numpy 线性代数,没有显式重复

转载 作者:太空狗 更新时间:2023-10-30 02:54:04 26 4
gpt4 key购买 nike

我有一个数组 w (shape (3000, 100, 100)) 我想将它与另一个数组 e (shape (5, 3000)) 使得结果 k 的形状为 (5, 5, 100, 100)

k[:, :, i, j] = e @ np.diag(w[:, i, j]) @ e.T

因为 w 太大了,制作一些形状为 (3000, 3000, 100, 100)super_w 数组是不切实际的,并且显式填充主对角线。遍历 ij 的效率也不是很高。除了将 w 分成 block 之外,是否有一种节省内存的方法来执行此操作?

最佳答案

np.einsum -

k = np.einsum('li,ijk,mi->lmjk',e,w,e)

关于python - 对角阵列上的 numpy 线性代数,没有显式重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47357744/

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