numpy
- numpy创建数组及基础属性
numpy是数据处理的基础,pandas也是基于numpy的,首先是numpy数组的创建。
一般我们默认导入了一下库
import numpy as np
import pandas as pd
1.numpy创建数组及基础属性
arr=np.array([[1,2,3],[4,5,6],[7,8,9]])
numpy的核心特征之一就是N-维数组对象----ndarray。一个ndarray的每个元素均为相同类型
numpy的基础属性:shape ,dtype ,ndim, size
每一个数组都有一个shape属性用来表征数组每一维度的数量;每个数组都有一个dtype属性用来描述数组的数据类型。ndim返回数组的维数。size返回数组元素个数。
![](https://img-blog.csdnimg.cn/img_convert/57cd02bfe6edf59fb58996afd34d2ba0.png)
- 生成随机数
生成无约束条件的随机数
![](https://img-blog.csdnimg.cn/img_convert/343a8ee2d535598ab8ab0fe0c5efd3b8.png)
生成指定shape的均匀随机数
![](https://img-blog.csdnimg.cn/img_convert/f1c1dd3e6ae539e4e2da8d1aa2c4be7b.png)
生成符合正太分布的随机数
![](https://img-blog.csdnimg.cn/img_convert/2efc238410e1cd04d91fe0fb43397497.png)
- random具体函数用法
![](https://img-blog.csdnimg.cn/img_convert/3607f47459a5465cbb520f50c71ea7d3.png)
- 一维数组索引
![](https://img-blog.csdnimg.cn/img_convert/28cc3a91b29c7dec88882a4071505cfc.png)
- 布尔索引
![](https://img-blog.csdnimg.cn/img_convert/6fc1326991e669828750d90d813c1993.png)
只有索引为True的会返回,所以可以根据这一特点筛选想要的数据
![](https://img-blog.csdnimg.cn/img_convert/9a98b1244b35d7cdcc6cbc652b27fa6b.png)
- 多维数组的索引
![](https://img-blog.csdnimg.cn/img_convert/c9f78a9c0b020d6721152ed54872f1f1.png)
这是一个二维数组,假如我们要取12这个元素,那么我们要找出12所在的行列索引,中间用逗号隔开
![](https://img-blog.csdnimg.cn/img_convert/332bc3d1ef7f06f6b7a64e95980f50a8.png)
对二维数组的切片与一维数组类似
![](https://img-blog.csdnimg.cn/img_convert/29866a9e3c4e9ef76d0b7a10518a412f.png)
也可以逻辑索引和切片混合
![](https://img-blog.csdnimg.cn/img_convert/a948975e891c96536ff3968e85900e93.png)
- Numpy矩阵介绍
矩阵的生成
![](https://img-blog.csdnimg.cn/img_convert/ef9f4279e789de1221ededa4dfcd1a62.png)
矩阵运算
![](https://img-blog.csdnimg.cn/img_convert/ae46c8a3d31340755040e20a1c272a72.png)
- Numpy读写二进制文件
![](https://img-blog.csdnimg.cn/img_convert/c658a2beea52b6c153829f309899275b.png)
- Numpy读写文本文件
![](https://img-blog.csdnimg.cn/img_convert/285847716731761bdee9030d74834ccc.png)
pandas
- pandas读取文本文件
一般使用pd.read_csv读取csv文件,read_table读取文本文件。两者的参数基本相同
![](https://img-blog.csdnimg.cn/img_convert/6b4cc699d6cdfc39689fecc7b76d95bc.png)
![](https://img-blog.csdnimg.cn/img_convert/9c1328047dfca927ad5bb39e75693f11.png)
- pandas读取excel文件
![](https://img-blog.csdnimg.cn/img_convert/666381a5eccb839bba92770e40c63e05.png)
![](https://img-blog.csdnimg.cn/img_convert/a17edb2618fd07e6ae301347beae2269.png)
- 将数据框存储为excel文件
![](https://img-blog.csdnimg.cn/img_convert/6c830ed8da05096a9c4c91cefae86a73.png)
这样保存数据左边也会出现一列从0开始的index,可以加参数index
![](https://img-blog.csdnimg.cn/img_convert/0ac4b1f414f1acaba56a9e854f072d64.png)
- 构建数据框
![](https://img-blog.csdnimg.cn/img_convert/baf8a60a156ccb1d86b10afd8f75378a.png)
创建DataFrame,可以用列表充当data
![](https://img-blog.csdnimg.cn/img_convert/0b3cbf47dec061ee0cb0a55b8700db31.png)
- 按行列名称访问数据框中的元素
当数据框的数量较大的时候,按顺序访问较为麻烦,这时后可以采用按行列名称访问数据框中的元素。
先构建一个新的数据框
![](https://img-blog.csdnimg.cn/img_convert/6a206a26112513825d26d0c8d442354b.png)
使用loc函数进行名称的访问
![](https://img-blog.csdnimg.cn/img_convert/3dafee898bb4f655343cd3838b67d2f5.png)
- 转换成时间类型数据
![](https://img-blog.csdnimg.cn/img_convert/5eb2d753e63961c7f0cc083a27d39414.png)
- groupby分组操作
![](https://img-blog.csdnimg.cn/img_convert/62ebd73b96fcca73a41d3508ccb87283.png)
从中提取三列数据,以’order_id’为分组依据
![](https://img-blog.csdnimg.cn/img_convert/e8769a362a50443ea23909fe453b703e.png)