我需要对两个 4D 数组(m 和 n)执行矩阵乘法,m 和 n 的尺寸分别为 2x2x2x2 和 2x3x2x2,这应该会产生 2x3x2x2 数组。经过大量研究(主要在本网站上),似乎可以使用np.einsum或np.tensordot有效地完成此操作,但我无法复制从 Matlab 获得的答案(手动验证)。我了解这些方法(einsum和tensordot)在二维数组上执行矩阵乘法时如何工作(这里清楚地解释了清楚解释),但我无法获得 4D 数组的正确轴索引。显然我\xe2\x80\x99m 缺少一些东西!我的实际问题涉及两个 23x23x3x3 复数数组,但我的测试数组是:
\n\na = np.array([[1, 7], [4, 3]]) \nb = np.array([[2, 9], [4, 5]]) \nc = np.array([[3, 6], [1, 0]]) \nd = np.array([[2, 8], [1, 2]]) \ne = np.array([[0, 0], [1, 2]])\nf = np.array([[2, 8], [1, 0]])\n\nm = np.array([[a, b], [c, d]]) # (2,2,2,2)\nn = np.array([[e, f, a], [b, d, c]]) # (2,3,2,2)\nRun Code Online (Sandbox Code Playgroud)\n\n我意识到复数可能会带来更多问题,但现在,我只是想了解索引如何与 …
我是 Altair 的新手,粗略地结合了这里和这里的一些代码,这给了我下面的图,但我无法弄清楚为什么我的列以非顺序顺序显示。我的数据框如下:
import pandas as pd
TimeMth = pd.DataFrame([['Jul-2011', '> 1.1 pu', 86],
['Jul-2011', '< 0.94 pu', 18],
['Aug-2011', '> 1.1 pu', 205],
['Aug-2011', '< 0.94 pu', 510],
['Sep-2011', '> 1.1 pu', 53],
['Sep-2011', '< 0.94 pu', 140],
['Oct-2011', '> 1.1 pu', 10],
['Oct-2011', '< 0.94 pu', 0],
['Nov-2011', '> 1.1 pu', 36],
['Nov-2011', '< 0.94 pu', 13],
['Dec-2011', '> 1.1 pu', 7],
['Dec-2011', '< 0.94 pu', 0],
['Jan-2012', '> 1.1 pu', 17],
['Jan-2012', '< …Run Code Online (Sandbox Code Playgroud)