github上的项目,跟着一起学习
项目地址 https://github.com/MLEveryday/100-Days-Of-ML-Code
第2章: 聚合, 比较运算符和广播。
代码如下:
2.4 聚合:最小值、最大值和其他值
2.5 数组的计算:广播
2.6 比较、掩码和布尔运算
读书笔记:
2.4、聚合:最小值、最大值和其他值
数据的统计值:均值和标准差,求和、乘积、中位数、最小值、最大值、分位数
2.4.1、数组值求和
python内置的sun函数实现求和
import numpy as np
L=np.random.random(100)
sum(L)
使用numpy的sum
np.sum(L)
2.4.2、最小值和最大值
big_array=np.random.rand(1000000)
np.min(big_array)
np.max(big_array)
(1)多维度聚合
指定沿着哪个轴的方向进行聚合。指定axis=0,找到每一列的最小值
M.min(axis=0)
(2)其他聚合函数
2.4.3、示例:美国总统的身高是多少
用pandas的read_csv读文件
统计值:
计算分位数
利用matplotlib可视化
2.5、数组的计算:广播
numpy的广播,用于不同大小数组的二进制通用函数的一组规则
2.5.1、介绍
标量和数组相加
a=np.array([0, 1, 2])
a+5
两个数组同时广播
可视化理解numpy的广播
2.5.2、广播的规则
规则1:维度不同的2个数组,小维度数组,最左边补1
规则2:两个数组的形状在任何一个维度上都不匹配,数组的形状会沿着维度为1的维度扩展,以匹配另外一个数组的形状。
规则3:两个数组的形状在任何一个维度上都不匹配且没有维度为1,引发异常
(1)广播示例
二维数组+一维数组
根据规则1,a左边补1
(2)广播示例2
(3)广播示例3
2.5.3、广播的实际应用
(1)数组归一化
(2)画一个二维函数
2.6、比较、掩码和布尔逻辑
2.6.1、示例:统计下雨天数
2.6.2、和通用函数类似的比较操作
2.6.3、操作布尔数组
统计布尔数组中True记录的个数,np.count_nonzero
2.6.4、将布尔数组作为掩码