gpt4 book ai didi

sympy - 使用 SymPy 执行 Hadamard 产品

转载 作者:行者123 更新时间:2023-12-01 22:32:56 29 4
gpt4 key购买 nike

我正在使用 SymPy做线性代数。我想对两个矩阵执行逐元素乘法 ( Hadamard product )。

例如,

sympy.MatrixSymbol('X', 4, 3) [operator/method] sympy.MatrixSymbol('W', 4, 3)

会给予

[[X[0,0]*W[0,0], X[0,1]*W[0,1], ...],[X[1,0]*W[1,0], X[1,1]*W[1,1], ...]]

但是好像没有办法。有什么方法可以使用 SymPy 执行逐元素乘法吗?

最佳答案

是的,SymPy 中有一个函数可以进行逐元素乘法(Hadamard 乘积)。根据他们的 SymPy 0.7.6 文档,函数是:

multiply_elementwise(b)

返回 A 和 B 的 Hadamard 乘积(元素乘积)。

例子:

>>> from sympy.matrices import Matrix
>>> A = Matrix([[0, 1, 2], [3, 4, 5]])
>>> B = Matrix([[1, 10, 100], [100, 10, 1]])
>>> A.multiply_elementwise(B)
Matrix([
[ 0, 10, 200],
[300, 40, 5]])

更新:对于 MatrixSymbols 的逐元素乘法,使用以下函数:

HadamardProduct(A, B)

例如:

>>> from sympy import HadamardProduct
>>> A = MatrixSymbol('A', m, n)
>>> B = MatrixSymbol('B', m, n)
>>>print(HadamardProduct(A,B))
A.*B

关于sympy - 使用 SymPy 执行 Hadamard 产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28770011/

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