前言:本文是学习网易微专业的《python全栈工程师》 中的《数据分析 - 机器学习工程师》专题的课程笔记,欢迎学习交流。一、课程目标
- 掌握数组间的运算
- 掌握数组的通用函数
import numpy asnp
a = np.arange(0, 10).reshape(2, 5)
a*3
a+3
a-3
a/3
运行结果:
文章图片
文章图片
2.数组间的运算:两个数组必须形状一样
b = a + 10
a.shape, b.shape
a + b
a - b
a / b
【Python全栈工程师学习笔记|Python数据分析 - 机器学习笔记(第一章数据分析 - 1.2.3.运算和通过函数)】运行结果:
文章图片
文章图片
文章图片
3.通过广播机制的运算:数组形状可以不同,但必须有一个轴的元素个数相同
m = np.arange(5)
a + m
文章图片
n = np.arange(1, 3).reshape(-1, 1)
a + n
a + np.array([1])
运行结果:
文章图片
文章图片
2.1.2.通过函数 1.内置函数:
一元函数:
函数 | 说明 |
---|---|
np.sin,np.cos,np.tan | 三角函数 |
np.arcsin,np.arccos,np.arctan | 反三角函数 |
np.sinh,np.cosh,np.tanh | 双曲三角函数 |
np.arcsinh,np.arccosh,np.arctanh | 反双曲三角函数 |
np.sqrt | 求平方根 |
np.exp | 计算自然指数 |
np.log,np.log2,np.log10 | 计算对数(依次是以e、2、10为底) |
alpha = np.linspace(-1, 1, 11)
y = np.sin(np.pi * alpha)
np.round(y, decimals=3)
运行结果:
文章图片
二元函数:
函数 | 说明 |
---|---|
np.add,np.subtract,np.multiply,np.divide | 算数运算函数 |
np.equal,np.not_equal,np.less,np.less_equal,np.greater,np.greater_equal | 比较运算函数 |
np.power | 指数运算 |
np.remainder | 得到余数 |
np.reciprocal | 返回倒数(不要使用整数型) |
np.real,np.imag,np.conj | 复数的实部、虚部和完整的复数 |
np.sign、np.abs | 得到对象符号和绝对值 |
np.floor、np.ceil、np.rint | 效果都是取整 |
np.round | 四舍五入 |
np.add(np.power(np.sin(alpa), 2), np.power(np.cos(alpha), 2))
运行结果:
文章图片
示例二:
a = np.arange(10.0, 100.0, 2)
b = np.logspace(2, 4, a.shape[0])
m = np.empty_like(a)
np.remainder(b, a, out=m)# 将运算结果,即余数保存到m中
运行结果:
文章图片
2.1.3.自定义通过函数
python
里自定义函数是如下这样的:# 自定义bmi函数
def bmi(height, weight):
bmi_index = weight / height ** 2
if bmi_index > 18 and bmi_index < 25:
return 0
elif bmi_index <= 18:
return -1
else:
return 1
bmi(1.55, 45)# 调用函数
使用
numpy
来自定义通过函数是如下这样的:# 创建身高数组
h = (2.2 - 1.4) * np.random.random_sample((10, )) + 1.4
h = np.round(h, 2)
运行结果:
文章图片
# 体重的数组
w = (96 - 30) * np.random.random_sample((10, )) + 30
w = np.round(w, 2)
运行结果:
文章图片
在
python
中自定义的函数,不能直接拿来在numpy
中调用,下面的调用会报错:bmi(h, w)
运行结果;
文章图片
正确的使用方法是下面这样的:
# 这里的2表示有两个参数,1表示有一个返回值
bmi_ufunc = np.frompyfunc(bmi, 2, 1)
bmi_ufunc(h, w)
运行结果:
文章图片
创建通过函数的另一个方法:
bmi_ufunc2 = np.vecotrize(bmi, otypes=[np.float])
bmi_ufunc2(h, w)
运行结果:
文章图片
注意:在进行数据分析时,最好不要用
for
循环语句,因为数据量一般较大,容易内存溢出。三、课程小结
- 01 运算
- 02 通用函数
推荐阅读
- Python专栏|数据分析的常规流程
- 学生作品|tina - 鸢尾花预测
- 大数据|【新书速递】流量运营教科书
- R语言从入门到机器学习|R语言rename重命名dataframe的列名实战:rename重命名dataframe的列名(写错的列名不会被重命名)
- Pyecharts|Pyecharts 猎聘招聘数据可视化
- python|上瘾了,最近又给公司撸了一个可视化大屏(附源码)
- python|深度盘点(一文详解数据分析中100个常用指标和术语)
- #|学习笔记 | Ch05 Pandas数据清洗 —— 缺失值、重复值、异常值
- python|requests库请求获取不到数据怎么办(不妨试试看这种妙法)
- 亿信华辰:怎样去断定一份数据的质量高低(数据质量如何评估?)