Seb*_*ian 2 python numpy matrix
我想计算两个矩阵的点积,其中一个是对角矩阵。但是,我不想使用np.diagornp.diagflat来创建完整矩阵,而是使用直接填充对角线值的一维数组。有什么方法或 numpy 操作可以用于解决此类问题?
x = np.arange(9).reshape(3,3)
y = np.arange(3) # diagonal elements
z = np.dot(x, np.diag(y))
Run Code Online (Sandbox Code Playgroud)
我正在寻找的解决方案应该没有 np.diag
z = x ??? y
Run Code Online (Sandbox Code Playgroud)
将 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
Run Code Online (Sandbox Code Playgroud)