持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第2天,点击查看活动详情
今天是十月更文计划第二天,第三篇
继续上篇文章的numpy学习:
kp5:数组与数组运算:
数组与数组之间的运算就是对应元素进行运算:
x1 = np.array([1, 2, 3, 4]) + np.array([4, 3, 2, 1])
print(x1) # 等长数组相加,对应元素相加,返回新数组
输出的结果如下:
会发生广播的情况如下:
x2 = np.array([1, 2, 3, 4]) + np.array([4])
print(x2) # 数组中每个元素加4,数组不等长,广播
只加一个元素的情况下,会广播到全部元素加这个元素,最后输出的结果就为:5,6,7,8
对应元素加减乘除:
a = np.array((1, 2, 3))
a1 = a + a # 等长数组之间的加法运算,对应元素相加
print(a1)
a2 = a * a # 等长数组之间的乘法运算,对应元素相乘
print(a2)
a3 = a - a # 等长数组之间的减法运算,对应元素相减
print(a3)
a4 = a / a # 等长数组之间的除法运算,对应元素相除
print(a4)
a5 = a ** a # 等长数组之间的幂运算,对应元素乘方
print(a5)
输出的结果如下:
不同维度的数组相乘,就会广播,会生成逐个数组相乘:
a = np.array((1, 2, 3))
b = np.array(([1, 2, 3], [4, 5, 6], [7, 8, 9]))
c = a * b # 不同维度的数组与数组相乘,广播
print(c)
输出的结果如下:
kp6.数组排序:
以下方法返回排序元素的数组下标:
x = np.array([3, 1, 2])
x1 = np.argsort(x)
print(x)
print(x1)
输出的结果如下:
对于原地排序只需要使用sort方法:
kp7.numpy数组的内积
计算数组的内积,使用dot方法:
x = np.array((1, 2, 3)) #两个等长数组的内积
y = np.array((4, 5, 6))
print(np.dot(x, y)) # 输出结果都是32
print(x.dot(y))
print(sum(x*y))
以上三种方法输出的结果都为相同,输出的结果如下:
kp8.numpy数组的布尔运算
x = np.random.rand(10) # 包含10个随机数的数组
print(x)
print(x > 0.5) # 比较数组中每个元素值是否大于0.5
x1 = x[x>0.5] # 获取数组中大于0.5的元素
print(x1)
x2=sum((x>0.4) & (x<0.6)) # 值大于0.4且小于0.6的元素数量,True表示1,False表示0
print(x2)
x3 = np.all(x<1) # 测试是否全部元素都小于1
print(x3)
x4 = np.any(x>0.8) # 是否存在大于0.8的元素
print(x4)
输出的结果如下: