gpt4 book ai didi

python - 具有对角矩阵的点积,无需创建完整矩阵

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

我想计算两个矩阵的点积,其中一个矩阵是对角矩阵。但是,我不想使用 np.diagnp.diagflat 来创建完整矩阵,而是使用直接用对角线值填充的一维数组.有什么方法或 numpy 操作可以用来解决这类问题吗?

x = np.arange(9).reshape(3,3)
y = np.arange(3) # diagonal elements
z = np.dot(x, np.diag(y))

我正在寻找的解决方案应该没有 np.diag

z = x ??? y

最佳答案

直接将 ndarray 乘以你的矢量就可以了。 Numpy 方便地假设您想要将 x 的第 n 列乘以 y 的第 n 个元素。

x = np.random.random((5, 5)
y = np.random.random(5)

diagonal_y = np.diag(y)
z = np.dot(x, diagonal_y)
np.allclose(z, x * y) # Will return True

关于python - 具有对角矩阵的点积,无需创建完整矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36152392/

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