【问题标题】:Fastest way to calculate resulting matrix numpy计算结果矩阵numpy的最快方法
【发布时间】:2021-10-02 19:03:56
【问题描述】:

给定一个维度为 [m,m] 的二维 numpy 数组 X 和一个长度为 m 的一维数组 Y,我希望计算一个结果二维矩阵 P 也是维度 [m,m],其 [i,j] 元素是使用以下操作获得的:

P[i][j] = Y[i] * Y[j] * np.dot(X[i],X[j]) 

有没有比应用嵌套 for 循环更快的方法?

【问题讨论】:

    标签: python numpy matrix


    【解决方案1】:

    你可以使用:

    P = Y*Y[:, None]*np.dot(X, X.T)
    

    示例:

    >>> X = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
    >>> Y = np.array([10, 11, 12])
    >>> P = Y*Y[:, None]*np.dot(X, X.T)
    >>> P
    array([[ 1400,  3520,  6000],
           [ 3520,  9317, 16104],
           [ 6000, 16104, 27936]])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-11
      • 2018-04-14
      • 2012-08-25
      相关资源
      最近更新 更多