1、Jupyter Notebook常用功能
快捷键
- “Esc”键:进入命令模式
- “Y” 键:切换到代码单元
- “M”键:切换到 Markdown 单元
- “B”键:在本单元的下方增加一单元
- “H”键:查看所有快捷命令
- “Shift+Enter”组合键:运行代码
2、掌握NumPy数组对象ndarray
打开numpy:先打开anaconda prompt,输入cd+空格+要保存在文件夹的路径,回车;
再输入jupyter notebook,回车;复制最后的链接到浏览器。
(打开之后不要关闭命令窗)
2.1 创建数组
数组属性
import numpy as np
arr1 = np.array([0.3,0.5,4.2])
#查看数组的基础属性
print(arr1.shape)
print(arr1.ndim)
print(arr1.dtype)
2.2 初识数组的特点
list1=[0.3,0.5,4.2]
arr1=np.array([0.3,0.5,4.2])
print(list1)
print(arr1)
#list1 ** 2 (列表不能直接平方)
print([i**2 for i in list1])
print(arr1 ** 2)
2.3 创建常用数组
创建数组并查看数组属性
重新设置数组 的shape属性
使用arange函数创建数组
使用linspace函数创建数组
使用logspace函数创建等比数列
使用zeros函数创建数组
使用eye函数创建数组
使用diag函数创建数组
使用ones函数创建数组
2.5 数组数据类型
数组数据类型转换
2.6 生成随机数
无约束条件下生成随机数
生成服从均匀分布的随机数
生成服从正态分布的随机数
2.7 一维数组的索引
一维数组的索引
逻辑型索引
2.8 多维数组索引
2.9 求解距离矩阵
2.10 变化数组shape
使用ravel函数展平数组
使用flatten函数展平数组
组合数组
- 使用hstack函数实现数组横向组合:np.hstack((arr1,arr2))
- 使用vstack函数实现数组纵向组合:np.vstack((arr1,arr2))
- 使用concatenate函数实现数组横向组合: np.concatenate((arr1,arr2),axis=1)
- 使用concatenate函数实现数组纵向组合:np.concatenate((arr1,arr2),axis=0)
切割数组
- 使用hsplit函数实现数组横向分割:np.hsplit(arr1,2)
- 使用vsplit函数实现数组纵向分割: np.vsplit(arr,2)
- 使用split函数实现数组横向分割:np.split(arr,2,axis=1)
- 使用split函数实现数组纵向分割:np.split(arr,2,axis=0)
3、Numpy矩阵介绍
- 使用mat函数创建矩阵: matr1 = np.mat("1 2 3;4 5 6;7 8 9")
- 使用matrix函数创建矩阵:matr2 = np.matrix([[1, 2, 3],[4, 5, 6],[7, 8, 9]])
- 使用bmat函数合成矩阵:np.bmat("arr1 arr2; arr1 arr2")
矩阵的运算
- 矩阵与数相乘:matr1*3
- 矩阵相加减:matr1±matr2
- 矩阵相乘:matr1*matr2
- 矩阵对应元素相乘:np.multiply(matr1,matr2)
3.1 认识ufunc函数
通用函数(universal function),是一种能够对数组中所有元素进行操作的函数。
- 四则运算:加(+)、减(-)、乘(*)、除(/)、幂(**)。数组间的四则运算表示对每个数组中的元素分别进行四则运算,所以形状必须相同。
- 比较运算:>、<、==、>=、<=、!=。比较运算返回的结果是一个布尔数组,每个元素为每个数组对应元素的比较结果。
- 逻辑运算:np.any函数表示逻辑“or”,np.all函数表示逻辑“and”。运算结果返回布尔值。
3.2 通用函数的广播机制
二维数组的广播机制
4、利用Numpy进行统计分析
NumPy文件读写主要有二进制的文件读写和文件列表形式的数据读写两种形式
- save函数是以二进制的格式保存数据。 np.save("../tmp/save_arr",arr)
- load函数是从二进制的文件中读取数据。 np.load("../tmp/save_arr.npy")
- savez函数可以将多个数组保存到一个文件中。 np.savez('../tmp/savez_arr',arr1,arr2)
- 存储时可以省略扩展名,但读取时不能省略扩展名。
读取文本格式的数据
- savetxt函数是将数组写到某种分隔符隔开的文本文件中。
- np.savetxt("../tmp/arr.txt", arr, fmt="%d", delimiter=",")
- loadtxt函数执行的是把文件加载到一个二维数组中。
- np.loadtxt("../tmp/arr.txt",delimiter=",")
- genfromtxt函数面向的是结构化数组和缺失数据。
- np.genfromtxt("../tmp/arr.txt", delimiter = ",")
使用数组进行简单统计分析
直接排序
- sort函数是最常用的排序方法:arr.sort()
- sort函数也可以指定一个axis参数,使得sort函数可以沿着指定轴对数据集进行排序。axis=1为沿横轴排序; axis=0为沿纵轴排序。
间接排序
- argsort函数返回值为重新排序值的下标。 arr.argsort()
- lexsort函数返回值是按照最后一个传入数据排序的。 np.lexsort((a,b,c))
去重与重复数据
- 通过unique函数可以找出数组中的唯一值并返回已排序的结果。
- np.tile(A,reps)
- tile函数主要有两个参数,参数“A”指定重复的数组,参数“reps”指定重复的次数。
- numpy.repeat(a, repeats, axis=None)
- repeat函数主要有三个参数,参数“a”是需要重复的数组元素,参数“repeats”是重复次数,参数“axis”指定沿着哪个轴进行重复,axis = 0表示按行进行元素重复;axis = 1表示按列进行元素重复。
- 这两个函数的主要区别在于,tile函数是对数组进行重复操作,repeat函数是对数组中的每个元素进行重复操作。
常用统计函数
当axis=0时,表示沿着纵轴计算。当axis=1时,表示沿着横轴计算。默认时计算一个总值。