目录
[1、NumPy 切片和索引](#1、NumPy 切片和索引)
1、NumPy 切片和索引
ndarray对象的内容可以通过索引或切片来访问和修改,与 Python 中 列表list 的切片操作一样。
ndarray 数组可以基于 0 - n 的下标进行索引,切片对象可以通过内置的 slice 函数,并设置 start, stop 及 step 参数进行,从原数组中切割出一个新数组。
**数据读取**
```
np.genfromtxt(fname='sport.csv', delimiter=',', dtype='str',autostrip=True, skip_header=True)
```
-
fname: 读取文件的路径
-
delimiter:控制读取数据的列分隔符
-
dtype: 控制数据以什么数据类型显示
-
autostrip:读取时自动去除元素前后的空值
-
skip_header : 读取文件时 去除表头数据
2、数组元素的添加与删除
- append() -> 添加数组
```
numpy.append(arr, values, axis=None)
```
`arr`:输入数组
`values`:要向`arr`添加的值,需要和`arr`形状相同(除了要添加的轴)
`axis`:默认为 None。当axis无定义时,是横向加成,返回总是为一维数组!当axis有定义的时候,分别为0和1的时候。当axis有定义的时候,分别为0和1的时候(列数要相同)。当axis为1时,数组是加在右边(行数要相同)。
- insert() -> 插入数组
```
numpy.insert(arr, obj, values, axis)
```
`arr`:输入数组
`obj`:在其之前插入值的索引
`values`:要插入的值
`axis`:沿着它插入的轴,如果未提供,则输入数组会被展开
- delete() -> 删除数组
```
Numpy.delete(arr, obj, axis)
```
`arr`:输入数组
`obj`:可以被切片,整数或者整数数组,表明要从输入数组删除的子数组
`axis`:沿着它删除给定子数组的轴,如果未提供,则输入数组会被展开
3、修改数组形状
| 方法 | 说明 |
| ----------------- | -------------------------- |
| reshape | 不改变数组的情况下修改形状 |
| flatten()/ravel() | 展开数据为一维 |
| resize() | 改变原数组的形状 |
| transpose()/T | 转置,行和列的形状对调 |
4、numpy随机数
**random模块**
numpy中内置random模块,便于快速生成指定形状的数组
```
import numpy.random
```
- 生成0-1之间随机小数
```
numpy.random.random(shape)
```
`shape`:指定生成的数组形状
- 生成指定范围的随机整数
```
numpy.random.randint(low, high, shape)
```
`low`: 生成的随机数最小值
`high`:生成的随机数最大值
`shape`:指定生成的数组形状
- 生成指定范围的随机小数
```
numpy.random.uniform(low, high, shape)
```
`low`: 生成的随机数最小值
`high`:生成的随机数最大值
`shape`:指定生成的数组形状
- 随机数种子
添加随机数种子,生成特定随机数
```
numpy.random.seed(num)
```
`num`:输入指定的种子数字,范围为 0 and 2**32 - 1