一 numpy的简介
NumPy是高性能科学计算和数据分析的基础包。它是pandas等其他各种工具的基础。
NumPy的主要功能:
- ndarray, 一个多维数据结构, 高新且节省空间
- 无需循环对数据进行快速运算的数学函数
- 线性代数 随机数生成和傅里叶变换功能
安装方法: pip install numpy
引用方式: import numpy as np
创建ndarray: np.adday(array_like)
数组与列表的区别:
- 数组对象内的元素类型必须相同
- 数组大小不可修改
二 Ipython的简介
再详细介绍Numpy之前先简单介绍一个下Ipython以便后面的操作
Ipython是再python环境下通过命令行交互式编程
安装:pip install ipython
使用:ipython
与Python解释器使用方法一致
1 高级功能
TAB键自动完成
?:内省, 命名空间搜索
!:执行系统命令
丰富快捷键:
2 魔术命令:以%开头
%run:执行文件代码
%paste:执行剪贴板代码
%timeit:评估运行时间
%pdb:自动调试
三 Numpy的使用
1 ndarray数据类型
- 布尔型:bool_
- 整形:int_ int8 int16 int32 int64
- 无符号整形: unit8 unit16 unit32 unit 64
- 浮点型:float float16 float32 float64
- 复数型:complex_ complex64 complex128
2 ndarray的常用属性
- T 数组的转置(对高维数组而言)
- size 数组元素的个数
- ndim 数组的维数
- shape 数组的维度大小(元祖形式)
- dtype 数组元素的数据类型
3 ndarray的创建
- array() 将列表转换为数组, 可选择显示指定dtype
- arange() range的numpy版, 支持浮点数
- linespace() 类似arange(),第三个参数为数组长度
- zeros() 根据指定形态和dtype创建全0数组
- ones() 根据指定形态和dtype创建全1数组
- empty() 根据指定形态和dtype创建空数组(随机值)
- eye() 根据指定边长和dtyoe创建单位矩阵
4 ndarray批量运算
数组和标量之间的运算
a+1 a*3 1//a a**0.5 a>5
同样大小数组之间的运算
a+b a/b a**b a%b a==b
5 ndarray索引和切片
一维数组的索引: a[5]
多维数组的索引:
- 列表式写法:a[2][3]
- 新式写法:a[2,3]
一维数组的切片: a[5:8] a[4:] a[2:10] = 1
多维数组的切片: a[1:2, 3:4] a[:,3:5] a[:,1]
数组切片与列表切片的不同:数组切片时并不会自动复制(而是创建一个视图),在切片数组上的修改会影响原数组
copy()方法可以创建数组的深拷贝
6 ndarray布尔型索引
给定一个数组选出数组中所有大于5的偶数
a[(a>5) & (a%2 == 0)]
给一个数组, 选出数组中所有大于5的数和偶数
a[(a>5) | (a%2==0)]
7 ndarray花式索引
对于一个数组,选出其第1,3,4,6,7个元素,组成新的二维数组
a[[1,3,4,6,7]]
对一个二维数组,选出其第一列和第三列, 组成新的二维数组
a[:,[1,3]]
8 ndarry通用函数
通用函数:能同时对数组中所有元素进行运算的函数
常见通用函数:
- 一元函数: abs, sqrt, exp, log, ceil(向上取整), floor(向下取整), rint, trunc(向零取整), modf(将整数和小数分开), isnan(判断是不是nan), isinf(判断是不是inf), cos, sin, tan
- 二元函数: add, substract, multiply, divide, power, mod, maximun, mininum
补充-浮点数特殊值
- nam(Not a Number):不等于任何浮点数(nan != nan)
- inf(infinity): 比任何浮点数都大
- NumPy中创建特殊值: np.nan np.inf
- 在数据分析中, nan常被用作表示数据缺失值
9 numpy数学和统计方法
[1 2 3 4 5]
- sum 求和
- mean 求平均数
- std 求标准差 ((1-3)**2+(2-3)**2+(3-3)**2+(4-3)**2+(5-3)**3)/5
- var 求方差
- min 求最小数
- max 求最大值
- argmin 求最小值索引
- argmax 去最大值索引
10 numpy随机数生成
- 随机数函数在np.random子包内
- rand 给定形态产生随机数组(0到1之间的数)
- randint 给定形态产生随机整数
- choice 给定形态产生随机选择
- shuffle 与random.shuff相同
- uniform 给定形态产生随机数组