如何沿特定维度获取 np.einsum ?

问题描述

我有 2 个复杂矩阵,每个矩阵的形状为 (2,4,3)。我想在没有 for 循环的情况下实现以下代码

ce2 = np.random.rand(2,3)+np.random.rand(2,3)*1j
ce1 = np.random.rand(2,3)*1j
numberofch,*dimxyz,drei = ce1.shape
sarmatrixar = np.zeros((*dimxyz,numberofch,numberofch),dtype=np.complex_)
for nport in range(2):
    for mport in range(2):
        sarmatrixar[...,nport,mport] = np.einsum("...k,...k->...",np.conj(ce1[nport]),ce2[mport])

我试过了

sarmatrixV = np.einsum("...k,np.conj(ce1),ce2)

但只得到一个 (2,4) 矩阵而不是一个 (4,2,2),我理解这是因为我只对最后一个轴求和。但我不知道如何实现 for 循环。我想过 np.dot 或 np.tensordot,但没有找到正确的解决方案。

非常感谢您的帮助

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...