Numpy数组与重塑
大家数据分析的环境安装没有什么问题了吧?那我们就开始登上数据分析这趟列车吧!本次列车首先从Numpy数组与重塑出发,准备好了吗我们启程了~~~~
#### Numpy是什么?
我们一起看一下来自百度百科给出的解释:
> NumPy(Numerical Python)是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix)),支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
通过上面的解释我们可以得出如下几点:
1、一个强大的N维数组对象Array;
2、比较成熟的函数库;
4、实用的线性代数、傅里叶变换和随机数生成函数。
另外还有两个方便实用的利器:1. Ndarray对象 2. 切片和索引
原来我们存储数据使用列表List,但是实现大型矩阵和一些函数运算就有限了,所以我们可以将Numpy理解成就是List的升级版。
如果安装的时候使用的anaconda安装,我们下面就可以直接使用了。但是如果不是,就需要使用pip包管理器安装一下。
安装方法:
> pip install numpy
引用方法:
> import numpy as np
#### Numpy之Ndarray 对象
NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。
该对象是⼀个快速⽽灵活的⼤数据集容器。你可以利⽤这种数组对整块数据执⾏⼀些数学运算,其语法跟标量元素之间的运算⼀样。
ndarray 对象是用于存放同类型元素的多维数组。 ndarray 中的每个元素在内存中都有相同存储大小的区域。
##### Ndarray对象的创建
1. 使用 np.array()函数把 python传入的序列对象创建成数组。如下:
**numpy.array(object)**
其中object是必须填写的参数,object可以是一个数组或者任何嵌套的序列。
在下面的代码框中,我们使用代码创建出一套吃鸡武器列表:
['A416', 'AKM', 'AWM', 'win94', '铁拳火箭筒','粘性炸弹']
```python
# 导入numpy数据包
import numpy as np
# 创建一个ndarray数组
np.array(['A416', 'AKM', 'AWM', 'win94', '铁拳火箭筒','粘性炸弹'])
```
结果:
这组数据里面不仅有武器,还有各种配件:6倍镜,有了配件的的加入你也试一下,看看有什么不同。
```python
# 导入numpy数据包
import numpy as np
# 创建一个ndarray数组
np.array([['美国队长','钢铁侠','绿巨人','黑寡妇','蜘蛛侠'],['6倍镜','步枪补偿器','轻型握把','快速扩容弹夹','步枪枪托','8倍镜']])
```
运行结果:
> array([list(['美国队长', '钢铁侠', '绿巨人', '黑寡妇', '蜘蛛侠']),
> list(['6倍镜', '步枪补偿器', '轻型握把', '快速扩容弹夹', '步枪枪托', '8倍镜'])],
> dtype=object)
嵌套序列(⽐如由⼀组等⻓列表组成的列表)将会被转换为⼀个多维数组
```python
# 导入numpy数据包
import numpy as np
# 创建一个ndarray数组
data2 = [[1, 2, 3, 4], [5, 6, 7, 8]]
np.array(data2)
```
运行结果:
数据可以是我们通过列表创建出来的,也可以自己“假装”构造出来数据,这些数据在我们需要的时候可以随时上场。
大将1:np.arange(start, stop, step)函数可以通过指定开始值、终值、步长来创建一个等差数列, 不包括终值;
大将2: np.linspace(start, stop, num,endpoint)函数可以通过指定开始值、终值、元素个数创建等差数列, 通过endpoint参数指定是否包括终值,默认包括;
大将3: zeros()、ones()函数可以创建指定的数组, 参数使用元组或列表, 大家一般都使用元组.
先感受一番大将的风采,使用np.arange创建一个指定范围的数列。
```python
# 导入numpy数据包
import numpy as np
# 使用arange()创建数组,类似range()函数
x = np.arange(6)
x
```
结果:
还可以指定起始,结束和步长值,看一看:
```python
# 导入numpy数据包
import numpy as np
# 使用arange()创建数组,类似range()函数
x = np.arange(1,10,3)
x
```
结果:
小学的时候学过等差数列或者给你一组数据让你找规律?那时候没有掉太多头发吧?