是Python语言的一个拓展程序库,支持多维数组和矩阵计算,此外也针对数组运算提供大量的数学函数库。Numpy功能非常强大,支持广播功能函数,线性代数运算,傅里叶变换
import numpy as np
print(np.__version__)
#使用version方法打印当前版本号,注意是两个下划线
1.21.5
Numpy最重要的一个特点是其N维数组对象ndarray。ndaeeay与列表形式上相似,但是要求数组内部的元素必须是相同的类型,在生成ndarry时,采用Numpy的array方法
arr0=np.array([1,3,5,7])
arr0
arr1=np.array([1,3],[5,7])
arr1
使用arange方法可以生成给定范围内的数组,其中的参数start表示起始数,stop表示中指数,step表示步长,即数组中相邻两个数字的差。dtype用于制定数据类型
np.arrange(0,10,0.5)
使用np.zeros((m,n))方法生成m行,n列的0值数组;
使用np.ones((m,n))方法生成m行,n列的填充值为1的数组
使用np.eyes((m,n))方法生成m行,n列的对角线位置填充值为1的矩阵
使用random方法生成随机数组
arr4=np.random.randint(1,10,(3,3))
arr4
np.max(arr4) #求解数组中的最大值
np.min(arr4) #求解数组中的最小值
np.amin(arr4,0) #求解数组行方向的最小值
np.amin(arr4,1)#求解数组列方向的最小值
np.median(arr4)#求解数组的中位数
是Pytho环境下非常重要的数据分析库。当使用python进行数据分析时,通常都指的是Pandas库作为分析工具对数据进行处理和分析。
Pandas是基于Numpy构建的数据分析库,但它比Numpy有更高级的数据结构和分析工具,如Series类型、DataFrame类型等。将数据源重组为DataFream数据结构后,可以利用Pandas提供的多种的多种分析方法和工具完成数据处理和分析任务
(1)Pandas数据结构之Series
Series是一种类似一维数组的数据结构由一组数据和数据的索引构成
import pandas as pd
print (pd.__version__)
pd.Series(data=[1,2,3,4])
1.4.4
Out[1]:
0 1
1 2
2 3
3 4
dtype: int64
pd.Series(data=[1,2,3,4],index=['a','b','c','d'])
a 1
b 2
c 3
d 4
dtype: int64
当Series数组元素为 数值时,可以使用Series对象的describe方法对Series数组的数值进行分析
import numpy as np
data=np.random.randint(1,100,10)
data
s=pd.Series(data=data)
s.describe()
count 10.000000 总数
mean 64.200000 均值
std 21.637416 标准差
min 26.000000 最小值
25% 52.250000 前四分之一
50% 73.000000 前二分之一
75% 76.750000 前四分之三
max 88.000000 最大值
dtype: float64
(2)Pandas数据结构之DataFream
如果把Series看作Excel表中的一列,DataFream就是Excel的一张工作表,由多个Series组成,可以类比为二维数组或者矩阵,但与之不同的是,DataFrame必须同时具有行索引个列索引
pd.DataFrame(data,index,colums)
数据 行索引 列索引
index和columes参数可以指定,当不指定时,从0开始,通常情况下,行索引都会给定,这样每一列数据的属性都可以由列索引描述
使用DataFrame类时可以调用其shape,info,index,column,values等方法返回其对应的属性
info:获得信息概述,包括行索引,列索引,非空数据个数和数据类型信息
index,columns,values可以返回当前对象的行索引,列索引和数组元素
df 查看原始的数据
df[0:1]访问df的第一行数据,返回的是DataFrame的数据对象
df.a 访问df列明为a的数据 返回的是DataFrame的数据对象
df.at[1,'a'] 访问df第二行,列名为a的数据,返回数据
df.iloc[1:3,1:3] 访问df的第2-3行。第2-3列包围的数据,返回数据
对DataFrame数据进行操作的方法
操作 行方向 (axis=0) 列方向(axis=1)
添加 df1.append(df2) df['new_column']=valueList
df.loc['new_row']=valueList
修改 df.loc[row]=new.value df[column]=valueList
删除df.drop(row_index,axis=0,inplace)
df.drop(column.axis=1,inplace)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2jaPlGN3-1668501900438)(C:\Users\kzk\AppData\Roaming\Typora\typora-user-images\image-20221115162049488.png)]
(1)Matplotlib/Seaborn模块
美观规范的图表会让客户直观、快速的了解数据变化的趋势,找到有关数据变化的原因,常与Numpy/Pandas搭配使用
(2)Scipy模块
可以处理插值、积分、优化、图像处理,常微分方程数值的求解、信号处理等问题,用于有效计算Numpy矩阵,使Numpy与Scipy协同工作,高效解决问题,
被数据科学、人工智能、数学、机械制造、生物工程等领域的人员应用
适合于科研
(3)Stasmodels模块
提供用于估计不同统计模型以及进行统计测试和统计数据探索的类和函数,常用的模型包括线性模型,广义线性模型和鲁棒线性模型,线性混合效应模型,方差分析(ANOVA)方法、时间序列过程和状态空间模型,广义的矩量法等。每个估算器都有一个广泛的结果统计列表,对照现有的统计数据包对结果进行测试,以确保他们是正确的。官方网址为:www.stassmodels.org 目前,统计人员倾向安装包含大量统计功能和方法的Stasmodels
(4)Scikit-Learn模块
是针对pyton编程语言的免费软件机器学习库,它具有各种分类,回归和聚类算法,包括支持向量机,随机森林,梯度提升,k均值和DBSCAN,并且旨在与python数值科学库NumPy和SciPy联合使用。计算机建模人员则倾向于使用包含各种人工智能方法的Scikit-Learn
预测、原因分析