1.numpy
在python中,数据分析可以使用numpy。
首先可以安装ipython解释器,在终端,代码变得可视化,界面有高亮显示:
pip Install ipython
除了可以在终端编程之外,还可以安装anaconda软件,该软件包含了数据分析的基础包,包括jupyter等和其他可是换数据分析包,可以快速的管理数据。
jupyter notebook看上去就像在终端编写代码一样,但是可以保存数据结果,有利于数据分析。
安装anaconda软件在官方点击下载,下载时记得将默认python3.7编辑器取消勾选。
jupyter的快捷键使用:
1. 运行当前代码并选中下一个单元格 shift+enter
2. 运行当前的单元格 crtl + enter
当编辑器出现绿色时,为编辑模式,当出现蓝色时,为 命令行模式。
3. 在单元格的上方添加一个单元格 , 按esc进入命令行模式,接下来按 a (above) 添加
4. 在单元格的上方添加一个单元格 , 按esc进入命令行模式,接下来按 b (below) 添加
5. 删除一个单元格, 按esc进入命令行模式, 接下来,按 dd(delete) 删除
6. 代码和markdown的切换, 按esc进入命令行模式, 接下来,按 m 切换
二。numpy的使用
首先使用pip进行安装:
pip install numpy
再对其进行导入,默认起别名为np
import numpy as np
numpy提供了比python还方便的一些处理数据方面的方法:
1.array
数组的创建array([1,2,3])
创建一个np格式的数组,这些数组可以直接相乘,得到一个数组:
import numpy as np l1 =np.array([1,2,3]) l2 = np.array([4,5,6]) l1*2 array([2, 4, 6])
T: 数组的转置(对高维数组)
dtype 数组元素的数据类型
size 数组元素的个数
ndim 数组的维数
shape 数组的维度大小(以元组的形式)
数据类型:
类型 | 描述 | |
---|---|---|
布尔型 | bool_ | |
整型 | int_ int8 int16 int32 int 64 | |
无符号整型 | uint8 uint16 uint32 uint64 | |
浮点型 | float_ float16 float32 float64 | |
复数型 | complex_ complex64 complex128 |
无符号类型只能用来存储正数
astype()方法可以修改数组的数据类型
array的搭建:
方法 | 描述 | |
---|---|---|
array() | 将列表转换为数组,可选择显式指定dtype | |
arange() | range的numpy版,支持浮点数 | |
linspace() | 类似arange(),第三个参数为数组长度 | |
zeros() | 根据指定形状和dtype创建全0数组 | |
ones() | 根据指定形状和dtype创建全1数组 | |
empty() | 根据指定形状和dtype创建空数组(随机值) | |
eye() | 根据指定边长和dtype创建单位矩阵 |
1、arange(): np.arange(1.2,10,0.4) 执行结果: array([1.2, 1.6, 2. , 2.4, 2.8, 3.2, 3.6, 4. , 4.4, 4.8, 5.2, 5.6, 6. , 6.4, 6.8, 7.2, 7.6, 8. , 8.4, 8.8, 9.2, 9.6]) # 在进行数据分析的时候通常我们遇到小数的机会远远大于遇到整数的机会,这个方法与Python内置的range的使用方法一样 ----------------------------------------------------------------- 2、linspace() np.linspace(1,10,20) 执行结果: array([ 1. , 1.47368421, 1.94736842, 2.42105263, 2.89473684, 3.36842105, 3.84210526, 4.31578947, 4.78947368, 5.26315789, 5.73684211, 6.21052632, 6.68421053, 7.15789474, 7.63157895, 8.10526316, 8.57894737, 9.05263158, 9.52631579, 10. ]) # 这个方法与arange有一些区别,arange是顾头不顾尾,而这个方法是顾头又顾尾,在1到10之间生成的二十个数每个数字之间的距离相等的,前后两个数做减法肯定相等 ---------------------------------------------------------------- 3、zeros() np.zeros((3,4)) 执行结果: array([[0., 0., 0., 0.], [0., 0., 0., 0.], [0., 0., 0., 0.]]) # 会用0生成三行四列的一个多维数组 --------------------------------------------------------------------- 4、ones() np.ones((3,4)) 执行结果: array([[1., 1., 1., 1.], [1., 1., 1., 1.], [1., 1., 1., 1.]]) # 会用1生成三行四列的一个多维数组 ------------------------------------------------------------------------ 5、empty() np.empty(10) 执行结果: array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.]) # 这个方法只申请内存,不给它赋值 ----------------------------------------------------------------------- 6、eye() np.eye(5) 执行结果: array([[1., 0., 0., 0., 0.], [0., 1., 0., 0., 0.], [0., 0., 1., 0., 0.], [0., 0., 0., 1., 0.], [0., 0., 0., 0., 1.]])
linspace中有一个参数位endpoint=False,标记当前数组中最后一个数是否参数与切分。
np.empty([2,2])
建立一个2*2的二维数组。