Python 中的逐元素乘法相当于 Matlab
Elementwise multiplication in Python equivalent to Matlab
我想知道 Python 中是否存在与 MATLAB 中的元素乘法等效的运算。一开始答案是肯定的,但是元素乘法 MATLAB 有一个非常有用的特定功能,我似乎无法在 python.
中复制它
具体来说,如果我们在 MATLAB 中有矩阵 A
和 b
,并且我们决定实现逐元素乘法,我们将得到以下结果:
A = [1 2 3] ;
b = [1;
2;
3] ;
C = A.*b
C = [1*1 1*2 1*3 ;
2*1 2*2 2*3 ;
3*1 3*2 3*3] ;
作为一个 python 初学者,要在 Python 中执行相同的操作,我的直觉是扩展矩阵,使它们具有相同的维度,然后利用 python 提供 numpy。
那是正确的吗?
对于数值处理,您应该使用 NumPy. Refer to NumPy for Matlab users 帮助入门。这是将 Matlab 代码转换为 Python/NumPy.
的方法
import numpy as np
a = np.array([1, 2, 3])
b = np.array([1, 2, 3]).reshape(3, 1)
c = a * b
a.shape # (3,)
b.shape # (3, 1)
c
# array([[1, 2, 3],
# [2, 4, 6],
# [3, 6, 9]])
当然别忘了安装NumPy
有了numpy,可以直接使用a*b
:
import numpy as np
a = np.array([1,2,3])
b = a.reshape((3,1))
C = a*b # or np.multiply(a,b)
print(C)
我的输出:
[[1 2 3]
[2 4 6]
[3 6 9]]
我想知道 Python 中是否存在与 MATLAB 中的元素乘法等效的运算。一开始答案是肯定的,但是元素乘法 MATLAB 有一个非常有用的特定功能,我似乎无法在 python.
中复制它具体来说,如果我们在 MATLAB 中有矩阵 A
和 b
,并且我们决定实现逐元素乘法,我们将得到以下结果:
A = [1 2 3] ;
b = [1;
2;
3] ;
C = A.*b
C = [1*1 1*2 1*3 ;
2*1 2*2 2*3 ;
3*1 3*2 3*3] ;
作为一个 python 初学者,要在 Python 中执行相同的操作,我的直觉是扩展矩阵,使它们具有相同的维度,然后利用 python 提供 numpy。
那是正确的吗?
对于数值处理,您应该使用 NumPy. Refer to NumPy for Matlab users 帮助入门。这是将 Matlab 代码转换为 Python/NumPy.
的方法import numpy as np
a = np.array([1, 2, 3])
b = np.array([1, 2, 3]).reshape(3, 1)
c = a * b
a.shape # (3,)
b.shape # (3, 1)
c
# array([[1, 2, 3],
# [2, 4, 6],
# [3, 6, 9]])
当然别忘了安装NumPy
有了numpy,可以直接使用a*b
:
import numpy as np
a = np.array([1,2,3])
b = a.reshape((3,1))
C = a*b # or np.multiply(a,b)
print(C)
我的输出:
[[1 2 3]
[2 4 6]
[3 6 9]]