NumPy (Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
数据处理的流程:
数据收集----数据预处理----数据处理—数据展示 数据收集方法: 网络爬虫,公开数据集,其他途径收集的数据
数据预处理方法:
1.归一化
2.二值化
3.维度变换
4.去重
5.无效数据过滤
数据处理方法:
1.数据排序
2.数据查找
3.数据统计分析
数据展示方法:
1.列表
2.图表
3.动态交互图形
0.安装numpy:
在某些方面,Numpy数组与Python内置的列表类型非常相似,但是随着数组在维度上变大,Numpy数组提供了更加高效的存储和数据操作。
windows:pip install numpy
Mac: pip3 install numpy
1.导入numpy模块
import numpy as np
#as np表示在接下来的程序里用np表示numpy import 某某模块 as 一个缩写
2.Numpy的基础类型——ndarray
2.1创建一个ndarray类型的数组
data = np.array([1,2,3,4,5])
np.array()里直接填一个由数字组成的列表
2.2创建一个二维的ndarray类型的数组
data = np.array([[1,2,3],[4,5,6]])
2.3判断ndarray的维度
print(data.ndim)
2
2.4了解ndarray各维度的长度
print(data.shape)
(2, 3)
2.5创建一个全是0的数组
data = np.zeros(10)
print(data)
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
2.6创建一个全是1的数组
data = np.ones(10)
print(data)
[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
2.7创建一个全是1的二维数组
注意多维数组的各维度长度要用 元组来表示
data = np.ones((2,5))
print(data)
[[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]]
2.8顺序数组
data = np.arange(10)
print(data)
[0 1 2 3 4 5 6 7 8 9]
2.9获取数组中某个数字(行话:索引)
data = np.arange(10)
print(data[5])
print(data)
5
2.10获取二维数组中某个数字(行话:索引)
data = np.array([[1,2,3],[4,5,6]])
print(data[0][1])
print(data[0,1])
2
2
2.11获取数组中某几个数字(行话:切片)
data = np.arange(10)
print(data[1:6])
从1到6号之前的位置 即12345
注意:切片起始位置是0或结束是最末尾的话可以省略不写
比如: data[:8]和data[0:8]得到的结果一 样
[1 2 3 4 5]
import numpy as np
data = np.arange(10)
date = data[1:5]
date[2] = 100
print(data)
[ 0 1 2 100 4 5 6 7 8 9]
注意!切片得到的数据对应的还是原始数据
任何修改都会反映到原始数据上 若想要一份副本不影响原始数据
可以利用data[:].copy()
import numpy as np
data = np.arange(10)
date = data[1:5].copy()
date[2] = 100
print(data)
[0 1 2 3 4 5 6 7 8 9]
这样更改就不会有错误啦
2.12变换数组的维度
import numpy as np
data = np.arange(10)
print(data.reshape((2,5)))
print(data.reshape((2,3)))
[[0 1 2 3 4]
[5 6 7 8 9]]
Traceback (most recent call last):
File "C:\Users\lenovo\Desktop\data = np.arange(10)", line 4, in <module>
print(data.reshape((2,3)))
ValueError: cannot reshape array of size 10 into shape (2,3)
我们可以发现:
2,5成功输出为2行5列
而2,3失败
2.13矩阵的转置
data = np.arange(10)
print(data.reshape((2,5)).T)
[[0 5]
[1 6]
[2 7]
[3 8]
[4 9]]
3.ndarray的运算
3.1对ndarray数组每个元素都求平方根
data = np.arange(10)
print(np.sqrt(data))
[0. 1. 1.41421356 1.73205081 2. 2.23606798
2.44948974 2.64575131 2.82842712 3. ]
3.2将两个数组相加
data1 = np.array([1,3,5,7,9])
data2 = np.array([2,3,6,8,10])
print(data2+data1)
[ 3 6 11 15 19]
print(np.add(data1,data2))
[ 3 7 11 15 19]
3.3数学及统计方法:
求和:
dataa = np.arange(10)
print(data.sum())
45
求平均值:
print(data.mean())
4.5
求标准差:
print(data.std())
2.8722813232690143
3.3数组的排序
data = np.array([3,2,9,2,7])
data.sort()
print(data)
[2 2 3 7 9]
4.ndarray的存取
4.1 读取txt文件
data = np.genfromtxt("data.txt",delimiter=",")
print(data)
4.2类型转换
data = np.genfromtxt("data.txt",delimiter=",")
print(data.astype(int))