python数据分析一

python数据分析 一:python数据分析工具

python本身的数据分析分析功能并不强,需要第三方库Numpy、Scipy、Matplotilib、Pandas、Scrikit-Learn、Keras、Gensim

1.1:Numpy 提供数组支持、以及相应的高效的处理函数 1.1.1:numpy的安装 pip install numpy 1.1.2:nmupy的基本操作 import numpy as np # 导入numpy模块、一般以np作为numpy的别名 # 创建数组 a = np.array([2,3,2,1]) # 输出数组 print(a) # --> [2 3 2 1] print(type(a)) # --> <class \'numpy.ndarray\'> # 数组切片 print(a[:3]) # 数组最小值 print(a.max()) # 数组排序 c = a.sort() print(c) # 创建二维数组 b = np.array([[1,3,2],[4,6,5]]) print(b) 1.2:scipy 提供矩阵支持,以及矩阵相关的数值计算模块 1.2.1:scipy的安装 pip install scipy 1.2.2:scipy求解非线性方程组和数值积分 from scipy.optimize import fsolve # 导入求解方程组的函数 from scipy import integrate # 导入积分函数 # 求解非线性方程组 2x1-x22=1,x12-x2=2 def f(x): x1 = x[0] x2 = x[1] return [2*x1 - x2**2 -1 ,x1**2 - x2 -2] result = fsolve(f,[1,1]) print(result) # --> [1.91963957 1.68501606] # 数值积分 def g(x): # 定义被积函数 return (1-x**2)**0.5 pi_2,err = integrate.quad(g,-1,1) # 积分结果和误差 print(pi_2*2) # 由微积分知识知道积分结果为圆周率的pi的一半 -->3.1415926535897967 1.3 Matplotlib 强大的数据可视化工具、做图库 1.3.1:作图基本代码 import matplotlib.pyplot as plt import numpy as np \'\'\' np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None) start:序列的起始点 stop:序列的结束点 num:生成的样本数,默认是50 endpoint:是否包含结束点 restep:是否包含起始点 dtype: \'\'\' x = np.linspace(0,10,1000) y = np.sin(x)+1 # 因变量y z = np.cos(x**2) + 1 # 因变量z plt.figure(figsize=(8,4)) # 设置图像大小 plt.plot(x,y,label = \'$\sin x+1$\',color =\'red\',linewidth = 2) # 作图、设置标签 plt.plot(x,z,\'b--\',label = \'$\cos x^2+1$\') # 作图、设置标签、线条类型 plt.xlabel(\'Time(s)\') # x轴名称 plt.ylabel(\'Volt\') # y轴名称 plt.title(\'A siimple Example\') # 显示标题 plt.ylim(0,2.2) # 显示y轴的范围 plt.legend() # 显示图例 plt.show() # 显示作图结果

python数据分析一

1.4:Pandas pandas是强大、灵活的数据分析和探索工具 1.4.1:Pandas 的简单例子 import pandas as pd s = pd.Series([1,2,3],index=[\'a\',\'b\',\'c\']) # 创建一个序--维数组 d = pd.DataFrame([[1,2,3],[4,5,6]],columns=[\'a\',\'b\',\'c\']) # 创建一个表--相当于二维数组 d2 = pd.DataFrame(s) # 可以用已有的序列来创建表格 d.head() # 预览前5行数据 d.describe() # 数据基本统计量 # 读取文件,注意文件的存储路径不能带有中文,否则读取可能出错 pd.read_excel(\'data.xls\') # 读取excel文件,创建DataFrame pd.read_csv(\'data.csv\',encoding=\'uft-8\') # 读取文本格式的数据,一般用encoding指定编码 1.5:StatsModels 统计建模和计量经济学、包括描述统计、统计模型估计和推断 1.5.1 StatsModels 简单例子 from statsmodels.tsa.stattools import adfuller as ADF import numpy as np s = ADF(np.random.rand(100)) print(s) # (-8.84180868108183, 1.6606817977681762e-14, 0, 99, {\'1%\': -3.498198082189098, \'5%\': -2.891208211860468, \'10%\': -2.5825959973472097}, 28.779514386004934) 1.6 Scikit-Learn 支持回归、分类、聚类等的强大的机器学习库 1.6.1:Scikit-Learn的简单列子 from sklearn.linear_model import LinearRegression # 导入线性回归模型 from sklearn import datasets # 导入数据集 from sklearn import svm # d导入SVM模型 model = LinearRegression() # 建立线性回归模型 print(model) \'\'\' 所有模型提供的接口有 1:model.fit() 训练模型,对于监督模型来说是fit(X,y),对于非监督模型是fit(X) 2:监督模型提供的接口有 2.1:model.predict(X_new) 预测新样本 2.2:model.predict_proba(X_new) 预测概率,仅对某些模型有用(比如LR) 2.3:model.score():得分越高,fit越好 3:非监督模型提供的接口有 model.transform():从数据种学到新的“基空间” model.fit_transform():从数据种学到新的基并将这个数据按照这组‘基’进行转换 Scikit-Learn 本身提供了一些实例数据,比较常见的有安德森鸢尾花卉数据集、手写图像数据集等 \'\'\' iris = datasets.load_iris() # 加载数据集 print(iris.data.shape) clf = svm.LinearSVC() # 建立线性SVM分类器 clf.fit(iris.data,iris.target) # 用数据训练模型 clf.predict([[5.0,3.6,1.3,0.25]]) # 训练好模型之后,输入新的数据进行预测 ss = clf .coef_ # 查看训练好的模型参数 print(ss)

python数据分析一

1.7:Keras 深度学习库、用于建立神经网络及深度学习模型 1.7.1:Keras的简单列子 from keras.models import Sequential from keras.layers.core import Dense,Dropout,Activation from keras.optimizers import SGD model = Sequential() # 模型初始化 model.add(Dense(20,64)) # 添加输入层(20节点)、第一隐藏层(64节点)的连接 model.add(Activation(\'tath\')) # 第一隐藏层用tanh作为激活函数 model.add(Dropout(0.5)) # 使用Dropout防止过拟合 model.add(Dense(64,64)) # 添加第一影藏层64节点,第一隐藏层64节点的连接 model.add(Activation(\'tath\')) # 第二隐藏层用tath作为激活函数 model.add(Dropout(0.5)) # 使用Dropout防止过拟合 model.add(Dense(64,1)) # 添加第二隐藏层64节点、输出层1节点的连接 model.add(Activation(\'sigmoid\')) # 输出层用sigmoid作为激活函数 \'\'\' SGD 随机梯度下降优化器,性价比***的算法 keras.optimizers.SGD(lr=0.1,decay=1e-6,momentum=0.9,nesterov=True) lr: float >= 0,学习速率 momentum: float >=0,参数更新的动量 decay:每次更新后学习速率的衰减量 netsterov:boolean 是否使用Netsterov动量项 \'\'\' sgd = SGD(lr=0.1,decay=1e-6,momentum=0.9,nesterov=True) # 定义求解算法 model.compile(loss=\'mean_sequared_error\',optimizer=sgd) # 编译生成模型,损失函数为平均误差平方和 model.fit(X_train,y_train,nb_epoch=20,batch_size=16) # 训练模型 score = model.evaluate(X_test,y_test,batch_size=16) # 测试模型 1.8:Gensim 用来做文本主题模型的库、文本挖掘可能用到 1.8.1:Gensim的简单列子 import gensim,logging logging.basicConfig(format=\'%(asctime)s:%(levelname)s:%(message)s\',level=logging.INFO) # logging用来输出训练日志 # 分好此的句子,每个句子一词列表的形式输出 sentences = [[\'first\',\'sentence\'],[\'second\',\'sentence\']] # 用以上句子训练词向量模型 model = gensim.models.Word2Vec(sentences,min_count=1) print(model[\'sentence\']) # 输出单词sentence的词向量 \'\'\' [ 2.0255086e-03 1.4354165e-03 4.1531306e-03 -2.4436247e-03 7.9498003e-04 -2.3921784e-03 1.8047908e-04 -6.5997639e-04 4.6689534e-03 2.9768234e-03 7.4920856e-04 -3.6216686e-03 4.1960198e-03 -1.1127638e-04 -2.9616000e-03 3.4305027e-03 1.6788821e-03 -4.5133010e-03 -1.5694526e-03 1.1396366e-03 6.2945927e-04 2.2802821e-03 -9.7226628e-05 1.8373540e-03 -3.2517842e-03 4.0304395e-03 3.0153790e-03 4.9641021e-03 -1.3667200e-03 -1.5136130e-03 -2.7600909e-03 -1.0979135e-03 -4.2943112e-03 2.1619755e-03 4.1683638e-03 -2.6924643e-03 -3.9239340e-03 1.4394275e-03 -3.7702043e-03 4.1737510e-03 4.3679657e-03 3.7233287e-04 4.8455340e-03 -3.0766593e-03 -3.3860814e-03 4.1146614e-03 1.1897747e-03 2.4295055e-04 -3.8672744e-03 1.6757190e-03 -4.8934245e-03 -2.1469339e-05 3.8065172e-03 3.0283716e-03 2.4289489e-03 4.0488594e-04 3.5402786e-03 -2.1330076e-03 -1.1819699e-03 1.3437602e-03 -4.6209120e-03 -1.9305869e-04 6.3677185e-04 -1.2286671e-03 -2.8576883e-03 3.0792976e-04 4.3145958e-03 -3.4873825e-03 -1.2855671e-03 5.6857680e-04 -1.5974524e-03 1.6169638e-03 -4.4753863e-03 -1.3934425e-03 2.5216275e-04 4.4940184e-03 1.1444967e-03 6.8825466e-04 -4.8798043e-03 3.7930966e-03 -3.6598800e-03 2.9519533e-03 2.4186759e-03 2.8739998e-03 -3.5608478e-03 -1.7704858e-03 4.8239161e-03 3.7756783e-03 4.1070357e-03 -5.3616066e-04 -1.6018059e-03 -1.6305518e-03 -2.4819584e-03 4.1905669e-03 -4.1932857e-04 2.3392378e-03 -4.8276852e-03 -9.7833597e-04 -8.5634517e-04 3.1401650e-03] \'\'\'

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgddjw.html