最近遇到了一个矩阵除以一个向量的问题,这里刚好总结一下
参考
https://numpy.org/doc/stable/reference/generated/numpy.divide.html
import numpy as np
aa = np.array([0])
bb = np.array([0])
cc = np.array([3])
print(aa/bb)
print(cc/aa)
结果如下
这个地方出现一个nan和inf
print(np.divide(2.0, 4.0))
x1 = np.arange(9.0).reshape((3, 3))
x2 = np.arange(3.0)
x3 = np.array([[0,1,2],[0,1,2],[0,1,2]])
print(x1)
print(x2)
print(np.divide(x1, x2))
print(np.divide(x1, x3))
print(x1/x3)
结果如下
这里如果一个矩阵除以一个向量,这种形式会将向量进行传播,上面的例子就是按行复制三行,然后进行对应元素的除法
除以对应行
import numpy as np
x1 = np.arange(9.0).reshape((3, 3))
x2 = np.arange(3.0)
print(x1)
print(x2)
# 除以对应的行
print(x1 / x2[:,None])
结果如下