在使用Numpy开发的时候,遇到一个问题,需要Numpy数组的每一个元素都与一个数进行比较,返回逻辑数组。
我们在使用Numpy计算是可以直接使用数组与数字运算,十分方便。当我尝试使用广播机制来处理数组与数字比较大小问题的时候发现广播机制同样适用,以下是测试代码:
import numpy as np
a = np.linspace(1,12,12).reshape(3,-1)
print("a is /n", a)
b = 3
c = a > b
print("c is /n", c)
结果:由此可以看出c被广播成了一个3x4,各元素值都为3的二维数组
a is
[[ 1. 2. 3. 4.]
[ 5. 6. 7. 8.]
[ 9. 10. 11. 12.]]
c is
[[False False False True]
[ True True True True]
[ True True True True]]
import numpy as np
a = np.linspace(1,12,12).reshape(4,-1)
d = np.linspace(2,4,3)
print("a is \n", a)
print("d is \n", d)
e = a > d
print("e is \n",e )
结果:表明d被广播成了3x4的二维数组,列向量分别为[2. 3. 4.]
a is
[[ 1. 2. 3.]
[ 4. 5. 6.]
[ 7. 8. 9.]
[10. 11. 12.]]
d is
[2. 3. 4.]
e is
[[False False False]
[ True True True]
[ True True True]
[ True True True]]
其他的广播内容可以参考这个博客:
https://blog.csdn.net/xiaosongshine/article/details/89430080