利用Python做数据分析有三板斧,分别是:numpy包,pandas包以及matplotlib包,numpy和pandas主要是用来做数据处理的,而matplotlib则主要用来做数据可视化。今天我们就先来认识numpy和pandas这两大利器。
一、一维数组
I. numpy一维数组
- 创建numpy一维数组
先导入numpy包
![v2-8e59823efac928ccff0fe5c69154f605_b.jpg](http://img-03.proxy.5ce.com/view/image?&type=2&guid=7b8e574b-3e2a-eb11-8da9-e4434bdf6706&url=https://pic2.zhimg.com/v2-8e59823efac928ccff0fe5c69154f605_b.jpg)
(1)传入列表
![v2-ae47b477ef2a72750f0ab8e0e8ebd76d_b.jpg](http://img-03.proxy.5ce.com/view/image?&type=2&guid=7b8e574b-3e2a-eb11-8da9-e4434bdf6706&url=https://pic2.zhimg.com/v2-ae47b477ef2a72750f0ab8e0e8ebd76d_b.jpg)
(2)传入元祖
![v2-6931895fca72c37295176228e9c3d568_b.jpg](http://img-02.proxy.5ce.com/view/image?&type=2&guid=7b8e574b-3e2a-eb11-8da9-e4434bdf6706&url=https://pic1.zhimg.com/v2-6931895fca72c37295176228e9c3d568_b.jpg)
(3)传入字符串
![v2-931d5880f1102c12a1d7427e28a682aa_b.jpg](http://img-03.proxy.5ce.com/view/image?&type=2&guid=7b8e574b-3e2a-eb11-8da9-e4434bdf6706&url=https://pic3.zhimg.com/v2-931d5880f1102c12a1d7427e28a682aa_b.jpg)
(4)传入字典
![v2-a7e69ffca52414bf661197da6d3a7dbe_b.jpg](http://img-02.proxy.5ce.com/view/image?&type=2&guid=7b8e574b-3e2a-eb11-8da9-e4434bdf6706&url=https://pic3.zhimg.com/v2-a7e69ffca52414bf661197da6d3a7dbe_b.jpg)
(5)传入集合
![v2-81e08f483ed4832b10cc91f149a332ee_b.jpg](http://img-02.proxy.5ce.com/view/image?&type=2&guid=7b8e574b-3e2a-eb11-8da9-e4434bdf6706&url=https://pic3.zhimg.com/v2-81e08f483ed4832b10cc91f149a332ee_b.jpg)
(6)不能传入多个参数
![v2-96de40e0863f3044cc7c70a02214f911_b.jpg](http://img-03.proxy.5ce.com/view/image?&type=2&guid=7b8e574b-3e2a-eb11-8da9-e4434bdf6706&url=https://pic2.zhimg.com/v2-96de40e0863f3044cc7c70a02214f911_b.jpg)
2. 访问numpy一维数组
(1)索引访问
比如先定义一个数组
![v2-ff3ea9d5378314bb9dc319d864539455_b.jpg](http://img-03.proxy.5ce.com/view/image?&type=2&guid=7b8e574b-3e2a-eb11-8da9-e4434bdf6706&url=https://pic2.zhimg.com/v2-ff3ea9d5378314bb9dc319d864539455_b.jpg)
Python的索引是从0开始的,所以当我们要访问第一个元素时,要用索引0
![v2-7d466f291f60438282c19f386f78dc48_b.png](http://img-01.proxy.5ce.com/view/image?&type=2&guid=7b8e574b-3e2a-eb11-8da9-e4434bdf6706&url=https://pic1.zhimg.com/v2-7d466f291f60438282c19f386f78dc48_b.png)
(2)切片访问
切片器的语法是:
一个切片操作要提供三个参数 [start_index:end_index:step]
start_index是切片的起始位置
end_index是切片的结束位置(不包括)
step是切片的步长值,缺省时默认值是1,但不能为0,不然会报错ValueError
例如:
![v2-4bb75b700a8061884ca68051673f61bb_b.png](http://img-02.proxy.5ce.com/view/image?&type=2&guid=7b8e574b-3e2a-eb11-8da9-e4434bdf6706&url=https://pic4.zhimg.com/v2-4bb75b700a8061884ca68051673f61bb_b.png)
表示从第0号元素(第1个)开始,到第3号元素(第4个)结束(不包括这个),步长为2取值
所以取出来的是1和3组成的数组
(3)循环访问
可以利用for循环来对数组进行访问
![v2-a80f12bce05760faee7c07846ebe658a_b.jpg](http://img-01.proxy.5ce.com/view/image?&type=2&guid=7b8e574b-3e2a-eb11-8da9-e4434bdf6706&url=https://pic3.zhimg.com/v2-a80f12bce05760faee7c07846ebe658a_b.jpg)
有些朋友可能就有疑问了,为什么会报错呢?
报错信息显示索引超出范围了,再仔细一看,上述语句表示打印从a[1]到a[5]的值,但a的索引是0~4,所以无法打印a[5],正确的写法应该是: