先导入numpy包
import numpy as np #(习惯改个名0.0)
numpy 里相同形状的数组之间可以做算术运算
x = np.array([4,9,3])
y = np.array([3,6,7])
x > y #array([ True, True, False])
(x > y).all() #False
a = np.array([1,2,3])
b = np.array([4,5,6])
a + b # array([5, 7, 9])
不同形状的数组,必须要符合广播规则才能进行算术运算
广播规则:
a、如果数组的秩不同,将秩较小的数组进行扩展,直到两个数组的尺寸长度都一样。
b、如果两个数组在某个维度上的长度是相同的,或者其中一个数组在该维度上的长度为1,那么我们就说这两个数组在该维度上是相容的。
c、如果两个数组在所有维度上都是相容的,它们就能使用广播。
d、广播之后,两个数组的尺寸将和较大的数组尺寸一样。
e、在任何一个维度上,如果一个数组的长度为1,另一个数组长度大于1,那么在该维度上,就好像是对第一个数组进行了复制。
numpy里逻辑判断使用时,要使用按位与(&) 按位或(|)和按位异或(~)进行链接
m = np.random.randint(5, 30, size = 50)
#这里 m = array([22, 14, 10, 5, 16, 17, 8, 23, 27, 25, 6, 9, 12, 16, #17, 26, 19,
# 25, 13, 8, 19, 17, 7, 9, 21, 9, 25, 28, 9, 26, 28, #10, 27, 6,
# 27, 26, 19, 17, 17, 9, 27, 29, 10, 9, 19, 23, 21, 28, #10, 20])
(m > 20) & (m < 25) # 这是比较m大于20和m小于25的数
#array([ True, False, False, False, False, False, False, True, #False,
# False, False, False, False, False, False, False, False, #False,
# False, False, False, False, False, False, True, False, #False,
# False, False, False, False, False, False, False, False, #False,
# False, False, False, False, False, False, False, False, #False,
# True, True, False, False, False])
(m > 20) | (m < 10) # 这是求m大于20 或 m 小于10 的数
#array([ True, False, False, True, False, False, True, True, #True,
# True, True, True, False, False, False, True, False, #True,
# False, True, False, False, True, True, True, True, #True,
# True, True, True, True, False, True, True, True, #True,
# False, False, False, True, True, True, False, True, #False,
# True, True, True, False, False])
~(m > 25) #求m大于25 的反 就是求m小于25的
#array([ True, True, True, True, True, True, True, True, #False,
# True, True, True, True, True, True, False, True, #True,
# True, True, True, True, True, True, True, True, #True,
# False, True, False, False, True, False, True, False, #False,
# True, True, True, True, False, False, True, True, #True,
# True, True, False, True, True])