宜宾移动网站建设,网站脑图怎么做,哪个网站的ps元素好,建设网站需要掌握什么编程语言NumPy#xff08;Numerical Python#xff09;是用Python编写的科学计算库#xff0c;用来存储大型矩阵和执行大型矩阵的科学计算#xff0c;在数据处理特别是科学计算方法具有独特优势#xff0c;它包含#xff1a;
一个强大的N维数组对象ndarray。丰富的广播功能函数整…NumPyNumerical Python是用Python编写的科学计算库用来存储大型矩阵和执行大型矩阵的科学计算在数据处理特别是科学计算方法具有独特优势它包含
一个强大的N维数组对象ndarray。丰富的广播功能函数整合C/C/Fortran代码的工具线性代数、博立叶变换、随机数生成等功能
一、数据获取
要分析某地区的空气 质量状况首先要取得该地区空气质量的历史数据
1、通过网络爬虫获取
按需编写
2、直接从网站下载
二、数据预处理
1、读取数据
NumPy提供的loadtxt()函数能够快速地实现文本数据的读取 import numpy as npdata np.loadtxt(fname数据集/aqi.csv,delimiter,,skiprows1,dtypefloat)
首先导入NumPy库简称np通过NumPy的loadtxt函数读取csv文件。
loadtxt()函数常用参数
参数含义例子fname加载的文件路径fname../data/aqi.csv读取上级目录data下的aqi.csv文件delimiter数据之间的间隔符delimiter,数据集之间以逗号分离skiprows忽略数据的位置skiprows1忽略第一行第一行为标题不需要读取dtype数据类型dtypefloat设置数据类型为float 查看data中的数据 print(data) 查看data的属性 print(data.shape) # 数组的维度 (1236, 11)print(data.size) # 数组中元素总个数 13596
2、合并多个数据
2.1、垂直合并 data1 np.loadtxt(数据集/aqi_2017.csv,delimiter,,skiprows1,dtypefloat)data2 np.loadtxt(数据集/aqi_2018.csv,delimiter,,skiprows1,dtypefloat)data3 np.vstack((data1,data2)) # 按行合并两个文件
通过vstack()函数实现垂直合并数据功能。需要注意的是在合并的文件中字段的顺序和数量要保持一致。
2.2、水平合并 data4 np.loadtxt(数据集/aqi_1.csv,delimiter,,skiprows1,dtypefloat)data5 np.loadtxt(数据集/aqi_2.csv,delimiter,,skiprows1,dtypefloat)data6 np.hstack((data4,data5))
通过hstack()函数实现水平合并数据功能。注意在合并的文件中数据的数量和顺序要一样。
2.3、其它方法
在NumPy中除了上述两种方法外还可以使用row_stack()和column_stack()函数实现同样的功能。另外还可以使用concatenate()函数来实现垂直合并和水平合并功能 np.concatenate((data1,data2),axis0) # axis0表示垂直合并np.concatenate((data4,data5),axis1) # axis0表示水平合并
NumPy的dstack()方法可以实现深度合并 r np.array([[1,2,3],[4,5,6],[7,8,9]])g np.array([[10,11,12],[13,14,15],[16,17,18]])b np.array([[20,30,40],[50,60,70],[80,90,100]])color np.dstack((r,g,b))# 结果为# [[[ 1 10 20]# [ 2 11 30]# [ 3 12 40]]# # [[ 4 13 50]# [ 5 14 60]# [ 6 15 70]]# # [[ 7 16 80]# [ 8 17 90]# [ 9 18 100]]]# 可知dstack方法将r,g,b中对应位置上的数合并起来生成三位数组
3、ndarray数据结构
NumPy的多维数组对象ndarray。类似于Python的列表。只能存储单一数据类型
参数含义np.array(x,dtype)将x转换为ndarray对象np.ones(shape,dtype)生成一个维度为shape、值全为1的ndarray对象np.zeros(shape,dtype)生成一个维度为shape、值全为0的ndarray对象np.empty(shape,dtype)生成一个维度为shape、未初始化的ndarray对象np.eye(N)生成一个N*N的单位矩阵对角线元素为1其余元素为0
4、去除冗余数据
4.1、去除无用数据
delete()函数可以删除任意行或列的数据 data np.delete(data,0,axis1) # 删除第一列数据# 如果要一次性删除多列比如删除前三列数据data np.delete(data,[0,1,2],axis1)
4.2、去除重复数据
unique()函数可以删除重复的数据
data np.unique(data,axis0) # 按行删除重复数据
data np.unique(data,axis1) # 按列删除重复数据
5、数据持久化存储
5.1、保存为文本文件
savetxt()方法可以将数据保存为文本文件
np.savetxt(aqi2.csv,data,fmt%.2f,newline\n)
5.2、保存为二进制文件
save()函数以二进制格式保存数据,load()方法从二进制文件中读取数据
np.save(aqi,data) # 保存数据
data np.load(aqi.npy) # 读取数据
三、科学计算
1、获取任意范围样本数据
5.1、索引的使用
使用索引可以定位到行或列索引的值可以从0开始索引的值也可以从-1开始使用逗号分割行和列
# 获取第1行数据
data[0] # 方式1使用索引自上而下
data[-8] # 方式2使用索引自下而上# 获取第2-4行数据
data9[[1,2,3]] # 将所有要获取的行索引存放到列表中# 获取第3行第4列的数据
data[2,3] # 使用逗号分隔行和列逗号左边代表行索引右边代表列索引
5.2、切片的使用
使用切片抽取行或列中某个范围的数据切片的起止位置用冒号分隔开将索引和切片结合起来使用可以截取任意范围的数据
# 获取前3行数据
data[0:3,:] # 方法1
data[:3,:] # 方法2
data[:3,] # 方法3# 获取第2-4行中第3-5列数据
data[1:4,3:5] # 注意行和列的终止索引分别是4和5# 获取第2-5列数据
data[:,1:5] # 注意逗号左边的冒号不可以省略# 获取最后3列数据
data[:,-3:] # 注意data[:,-3:-1]的写法是错误的
2、计算特征的最小值、最大值和平均值
ndarray常用计算函数
计算方法说明ndarray.mean(axis)求平均值ndarray.sum(axis)求和ndarray.cumsum(axis)累加ndarray.sumprod(axis)累成ndarray.std(axis)求标准差ndarray.var(axis)求方差ndarray.max(axis)求最大值ndarray.min(axis)求最小值
例子
# 计算数据集中data中AQI的平均值、最大值和最小值
data[:,-1].mean(axis0) # AQI的平均值
data[:,-1].max(axis0) # AQI的最大值
data[:,-1].min(axis0) # AQI的最小值# 分别计算NO2、CO和O3的最小值
data[:,-4:-1].min(axis0)# ndarray数组还可以与标量进行运算
data1 [[1,2,3],[4,5,6]]
data2 np.array(data1)
data2 data2*2 1# 将数组中所有的数都变为原来的一半
data1 [[1,2,3],[4,5,6]]
data2 np.array(data1)
data2 data2/2
3、统计
where()函数能得到符合条件的数据的索引
# 首先统计空气质量等级为优的天数
tnp.where(data[:,-1]35) # 得到所有符合条件的索引
print(t)
style1len(t[0]) # 得到索引的数量# 统计空气质量等级为良的天数
tnp.where((data[:,-1]35) (data[:,-1]75)) # 使用分隔多个筛选条件
style2len(t[0])# 统计空气质量等级为差的天数
tlen(np.where(data[:,-1]75)[0])
4、预测空气质量
4.1、矩阵乘法原则
已知矩阵A和矩阵BAB表示两个矩阵相乘计算方法是将矩阵A中的每一行分别与矩阵B中每一列对应的元素相乘再相加。
矩阵A的列数必须等于矩阵B的行数。
4.2、NumPy矩阵乘法
dot(A,B)函数可以实现矩阵A和矩阵B的乘法运算
import numpy as np
data np.loadtxt(数据集/aqi_new.csv,delimiter,,skiprows1,dtypefloat)
A data[:,3:-1] # 提取特征
B [1.4,0.2,-0.05,-0.01,2.4,0.1] # 参数
B np.array(B) # 转换为ndarray对象
B B.reshape(6,1) # 转换为6行1列
result np.dot(A,B) # 矩阵乘法
print(result)
四、总结
数据分析流程和实现函数
流程具体任务实现函数项目需求分析项目介绍项目流程和项目目标环境搭建Anaconda和Pycharm的介绍和安装数据获取获取项目需要的数据集方法1通过网络爬虫从网络中获取。方法2直接从提供数据的网站下载数据预处理读取数据np.loadtxt()读取文本文件。np.load()读取二进制文件合并多个数据np.vstack()按行合并。np.hstack()按列合并去除冗余数据np.delete()数据持久化存储np.savetxt()存储为文本形式。np.save()存储为二进制形式科学计算与统计获取任意范围的样本数据索引和切片计算特征的最小值、最大值和平均值ndarray.min()、ndarray.max()、ndarray.mean()统计不同空气质量等级的数量np.where()计算空气质量np.dot()