Numpy数组乘法
Numpy数组乘法
元素级乘法
numpy.multiply() 或 * : 数组对应位置元素相乘
import numpy as np
# 一维数组
a = np.array([1, 2, 3, 4])
b = np.array([5, 6, 7, 8])
print(a * b)
# 多维数组
a = np.arange(9).reshape((3, 3))
b = np.arange(9, 18).reshape((3, 3))
print(a)
print(b)
print(a * b)
矩阵乘法
numpy.matmul():获取矩阵乘积,数组形状需要满足矩阵乘法要求。
import numpy as np
a = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
b = np.array([[1, 1], [2, 2], [3, 3], [4, 4]])
print(np.matmul(a, b))
print(np.matmul(b, a))
点乘(numpy.dot())
numpy.dot(): 对于一维数组,求内积,结果为1个值。对于二维数组,等价于矩阵乘法需要满足一定条件。
import numpy as np
# 一维数组
a = np.array([1, 2, 3])
b = np.array([1, 2, 3])
print(np.dot(a, b))
# 二维数组, 矩阵乘法
a = np.arange(6).reshape((2, 3))
b = np.arange(6).reshape((3, 2))
print(a)
print(b)
print(f"a点乘b:\n {a.dot(b)}")
print(f"b点乘a:\n {b.dot(a)}")
外积(numpy.outer())
numpy.outer(): 把两个多维数组ravel到一维后,第一个数组每一个数乘以第二个数组的每一行
import numpy as np
a = np.arange(4).reshape((2, 2))
b = np.arange(4).reshape((2, 2))
print(a)
print(np.outer(a, b))