python数据分析工具

article/2025/10/27 16:32:49

文章目录

  • python数据分析工具
  • NumPy
  • Scipy
  • Matplotlib
  • pandas
  • StatsModels
  • scikit-learn
  • Keras
  • Gensim


python数据分析工具

python本身的数据分析功能并不强,需要安装一些第三方扩展库来增强其相应的功能。

python数据分析与挖掘相关的扩展库;

扩展库简介
NumPy提供数组支持以及相应的高效的处理函数
SciPy提供矩阵支持以及矩阵相关的数值计算模块
Matplotlib强大的数据可视化工具、作图库
pandas强大、灵活的数据分析和探索工具
StatsModels统计建模和计量经济学,包括描述统计、统计模型估计和推断
scikit-learn支持回归、分类、聚类等强大的机器学习库
Keras深度学习库,用于建立神经网络以及深度学习模型
Gensim用来做文本主题模型库,文本挖掘可能会用到

当然还有其他一些库,比如说涉及到图像处理可以使用pillow库,涉及视频处理可以使用OpenCV、高精度计算可以用GMPY2等。当然我们在处理问题的时候,可以在网上搜索相关资料。

如果使用Anaconda发行版,很多库都已经自带了,比如NumPy、SciPy、Matplotlib、pandas、scikit-learn。

当然如果使用其他编译器需要自行安装相关库文件。

NumPy

  • python并没有提供数组功能,虽然列表可以完成基本的数组功能,当数据量大时,使用列表的速度就会很慢;
  • NumPy提供了真正的数组功能以及对数据进行快速处理的函数;
  • NumPy是很多高级库的依赖库;

使用NumPy操作数组

import numpy as npa = np.array([2, 0, 1, 5])  #创建数组
print(a)
print(a[:3])
print(a.min())
a.sort()
print(a)
b = np.array(([[1,2,3], [4,5,6]]))
print(b*b)
输出结果:
[2 0 1 5]
[2 0 1]
0
[0 1 2 5]
[[ 1  4  9][16 25 36]]

参考资料链接:

  • https://numpy.org/

Scipy

SciPy包含的功能又最优化、线性代数、积分、插值、拟合、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学和工程中常用的计算。

from scipy.optimize import fsolve #导入求解方程组的函数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)from scipy import integrate #导入积分函数def g(x):  #定义积分函数return (1 - x**2)**0.5pi_2, err = integrate.quad(g, -1, 1) # 积分结果和误差
print(pi_2 * 2)
print(err)
输出结果:
[1.91963957 1.68501606]
3.1415926535897967
1.0002354500215915e-09

参考链接:

  • https://scipy.org/

Matplotlib

Matplotlib是最著名的绘图库,主要用于二维绘图,当然也可进行简单的三维绘图。

import numpy as np
import matplotlib.pyplot as pltx = np.linspace(0, 10, 1000) #作图的自变量
y = np.sin(x) + 1 #因变量y
z = np.cos(x**2) + 1 #因变量zplt.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 Simple Example') 
plt.ylim(0,2.2)# y轴范围
plt.legend()#显示图例
plt.show()

在这里插入图片描述
中文字体需要手动指定默认字体为中文字体。
参考资料:

  • https://matplotlib.org/
  • https://matplotlib.org/stable/gallery/index.html

pandas

pandas是python下最强大的数据分析和探索工具。pandas功能十分强大;

  • 支持类似SQL的数据增、删、查、改,并且带有丰富的数据处理函数;
  • 支持时间序列分析功能;支持灵活处理确实数据等;

pandas的基本数据结构是Series(序列)和DataFrame(表格)。

import numpy as np
import pandas as pds = pd.Series([1, 2, 3], index=list('abc'))d = pd.DataFrame([[1,2,3],[4,5,6]], columns=['a','b','c'])d2 = pd.DataFrame(s)print(d.head())
print(d.describe())
输出结果:a  b  c
0  1  2  3
1  4  5  6a        b        c
count  2.00000  2.00000  2.00000
mean   2.50000  3.50000  4.50000
std    2.12132  2.12132  2.12132
min    1.00000  2.00000  3.00000
25%    1.75000  2.75000  3.75000
50%    2.50000  3.50000  4.50000
75%    3.25000  4.25000  5.25000
max    4.00000  5.00000  6.00000
#读取文件,注意文件的存储路径不能带有中文,否则读取可能出错;
pd.read_excel('data.xls') #读取Excel文件,创建DataFrame;
pd.read_csv('data.csv', encoding='utf-8') #读取文本格式的数据,一般用encoding指定编码;

参考文档;

  • https://pandas.pydata.org/pandas-docs/stable/

StatsModels

pandas着重于数据的读取、处理和探索,而StatsModels则更注重数据的统计建模分析,它使得python有了R语言的味道。StatsModels支持与pandas进行数据交互,因此,它与pandas结合成为了python下强大的数据挖掘组合。

from statsmodels.tsa.stattools import adfuller as ADF #导入ADF检验
import pandas as pd
import numpy as npprint(ADF(np.random.rand(100))) #返回的结果又ADF值、p值等
输出:
(-8.103123291388002, 1.2838791095546032e-12, 1, 98, {'1%': -3.4989097606014496, '5%': -2.891516256916761, '10%': -2.5827604414827157}, 30.91636795599902)

参考链接:

  • https://www.statsmodels.org/stable/index.html

scikit-learn

这是一个和机器学习相关的库。scikit-learn是python下强大的机器学习工具包,提供了完善的机器学习工具箱,包括数据预处理、分类、回归、聚类、预测、模型分析等。

scikit-learn依赖于NumPy、SciPy和Matplotlib。

from sklearn.linear_model import LinearRegression #导入线性回归模型model = LinearRegression() #建立线性回归模型
print(model)

1)所有模型提供的接口有:对于训练模型来说是model.fit(),对于监督模型来说是fit(X,y),对于非监督模型是fit(X).

2)监督模型提供如下接口:

  • model.predict(X_new):预测新样本;
  • model.predict_proba(X_new):预测概率,仅对某些模型有用(比如LR);
  • model.score():得分越高,fit越好;

3)非监督模型提供如下接口:

  • model.transform(): 从数据中学到新的基空间;
  • model.fit_transform():从数据中学到新的基并将这个数据按照这组基进行转换;

scikit-learn本身提供了一些实例数据供我们上手学习,比较常见的有安德森鸢尾花卉数据集、手写图形数据集等。

from sklearn import datasets # 导入数据集 iris = datasets.load_iris() # 加载数据集
print(iris.data.shape)from sklearn import svm  #导入SVM模型clf = svm.LinearSVC() #建立SVM分类器
clf.fit(iris.data, iris.target) #用数据训练模型
clf.predict([[5.0, 3.6, 1.3, 0.25]]) #输入训练好的模型之后,输入新的数据进行预测
print(clf.coef_) #查看训练好的模型的参数
输出结果:
(150, 4)
[[ 0.18423149  0.45122757 -0.8079383  -0.45071932][ 0.05554602 -0.9001544   0.40811885 -0.96012405][-0.85077276 -0.98663003  1.3810384   1.86530666]]

参考链接:

  • https://scikit-learn.org/stable/

Keras

人工智能神经网络是功能相当强大但是原理又相当简单的模型,在语言处理、图像识别等领域都有重要的作用。Keras库可以用来搭建神经网络。事实上,Keras并非简单的神经网络库,而是一个基于Theano的强大的深度学习库,利用它不仅可以搭建普通的神经网络,还可以搭建各种深度学习模型,如自编码器、循环神经网络、递归神经网络、卷积神经网络等。
要使用 Keras,需要安装 TensorFlow 包。

from keras.models import Sequential
from keras.layers.core import Dense, Dropout, Activation
from keras.optimizers import SGDmodel = Sequential()#模型初始化
model.add(Dense(20,64))#添加输入层(20节点)、第一隐藏层(64节点)的连接
model.add(Activation('tanh'))#第一隐藏层用tanh作为激活函数
model.add(Dropout(0.5))#使用Dropout防止过拟合
model.add(Dense(64, 64))#添加第一隐藏层(64节点)、第二隐藏层(64节点)的连接
model.add(Activation('tanh'))
model.add(Dropout(0.5))
model.add(Dense(64,1))#添加第二隐藏层(64节点)、输出层(1节点)的连接
model.add(Activation('sigmoid'))#输出层使用sigmoid作为激活函数sgd = SGD(lr=0.1, decay=1e-6,momentum=0.9,nesterov=True)#定义求解算法
model.compile(loss='mean_squraed_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)#测试模型

参考资料;

  • https://keras.io/examples/

Gensim

Gensim用来处理语言方面的任务,如文本相似度计算、LDA、Word2Vec等,这些领域的任务往往需要比较多的背景知识。

import gensim, logginglogging.basicConfig(format='%(asctime)s: %(levelname)s : %(message)s', level=logging.INFO)
#logging用来输出训练日志
#分好词的句子,每个句子以词列表的形式输入
sentences=[['first', 'sentence'],['secend','sentence']]
#用以上句子训练向量模型
model = gensim.models.Word2Vec(sentences, min_count=1)
print(model['sentence'])#输出单词sentence的词向量

参考资料:

  • https://radimrehurek.com/gensim/

http://chatgpt.dhexx.cn/article/1BvWO8TM.shtml

相关文章

Python常用数据分析工具

Python数据分析工具 Python 本身的数据分析功能不强,需要安装一些第三方扩展库来增强它的能力。常用 的库有Numpy 、Scipy 、Matplotlib 、Pandas 、Scikit-Learn 、Keras 和Gensim 等,下面将对 这些库的安装和使用进行简单的介绍。如果你安装的是Anaconda 发行版,那么它已经…

wps2019数据分析加载项_wpsexcel数据分析工具在哪里

WPS中Excel表格的功能非常强大,不仅仅能够统计数据,而且还可以分析数据,这也是我们处理大量数据的最快捷的方法,感兴趣的小伙伴可以来看看哦。 WPS中如何将表格中的数据在表格中以柱状图显示 运用条件格式中数据条即可达到效果 如…

6个常用大数据分析工具集锦

大数据是一个含义广泛的术语,是指数据集,如此庞大而复杂的,他们需要专门设计的硬件和软件工具进行处理。该数据集通常是万亿或EB的大小。这些数据集收集自各种各样的来源:传感器,气候信息,公开的信息&#…

数据分析的类型有哪些?

数据分析的类别 维度一 在统计学领域,有些学者根据分析的方法和目的,分析可以被划分为描述性分析(descri-ptive analytics)、预测性分析(predictive analytics)和规范性分析(prescriptive ana…

BI数据分析工具

数据分析是指用适当的统计方法对收集的大量数据进行分析,将对它们加以汇总和理解并消化,以求最大的开发数据的功能,发挥数据的作用。数据分析是为了提取有用信息和形成结论而对数据加以详细研究概括总结的过程。 今天小编介绍的是现在市面上…

盘点6个主流的数据分析工具,及优缺点对比

本文来跟大家聊聊关于数据分析工具的事儿。 市面上用来做数据分析的工具蛮多的,包括Python、Excel、SPSS、MATLAB、R、BI等等,以下挑几个比较主流的工具,尽量客观的聊聊他们的优缺点。 01 Microsoft Excel 想要了解如何用Excel做数据分析的…

数据分析的常用工具有哪些

大数据分析是研究大量的数据的过程中寻找模式,相关性和其他有用的信息,可以帮助企业更好地适应变化,并做出更明智的决策。下面整理了一些大数据分析能用到的工具,助力大家更好的应用大数据技术。 一、hadoop Hadoop 是一个能够…

拼多多数据分析工具有哪些?拼多多数据分析工具介绍

在如今大数据时代,如果背后没有强大的数据作为依靠,光靠自己单打独斗是很难做大做强,举步维艰。使用大数据分析软件是各位电商朋友们必不可少的辅助工具之一。那么拼多多数据分析工具有哪些?拼多多数据分析工具介绍。 特别是对于…

蓬莱小课:数据分析最常用的5个工具汇总

最近在后台看到很多想进入数据分析领域的朋友私信我,让我帮忙解答一些职业问题。在跟他们的交流中,我发现他们之中70%都是一无所知或刚入门的数据小白,但是都特别积极主动,是真心想学习数据分析。 他们中大部分人都不是为了转行才…

小白看了也会选:数据分析的常见工具有哪些

要进行数据分析就一定离不开数据分析工具。那数据分析的常见工具有哪些呢,现在市面上数据分析工具太多了,很多小白根本不知道该选择哪种工具会比较适合自己学习。况且现在市面上还涌现了非常多新奇的数据分析工具,数据分析的常见工具有哪些呢…

Spring框架搭建实例

1、首先打开官网 2、搭建父子工程项目 3、父POM文件配置依赖包 4、创建核心配置文件 5、编写单元测试 1、首先打开官网 spring官网 找到Spring Framework 找到核心技术Core technologies 或者从这选择相应的版本,选择其文档 最终来到这个页面Core Technologies…

Spring的框架

1.什么是Spring框架 Spring是一个开源的框架,Spring 为简化企业级开发而生,使用 Spring、JavaBean 就可以实现很多以前要靠 EJB 才能实现的功能,同样的功能,在EJB中要通过繁琐的配置和复杂的代码才能够实现,而使用Spri…

搭建SpringBoot框架

一、创建spring initializr项目 file--->new project--->spring initializr--->(阿里云路径https://start.aliyun.com) 默认的springboot版本2.3.7,选中springweb,自动加入springMVC依赖 数据库及mybatis依赖 项目路径…

IDEA中spring框架快速搭建

首先创建一个maven模块 第一步在pom文件中导入spring的坐标 引入完成之后刷新maven maven仓库spring坐标地址 https://mvnrepository.com/artifact/org.springframework/spring-context <dependency><groupId>org.springframewor…

SpringBoot框架的搭建

** SpringBoot框架的搭建 ** 个人 简介 你好&#xff01; 很高兴你能阅读到这篇文章&#xff0c;这是我第一次使用 博客 做分享。我是做Java全栈开发的&#xff0c;个人学习能力差&#xff0c;目前有4年开发经验&#xff0c;但是个人能力感觉还是很差&#xff0c;不会的东西…

搭建一个Spring框架

目录 1. Spring框架的概述 2.搭建Spring框架 pom.xml配置 Demo.java applicationContext.xml DemoTest.java 1. Spring框架的概述 IOC:控制反转&#xff0c;将创建对象的过程交给spring进行管理 AOP:面向切面&#xff0c;在不修改源代码的情况之下进行代码功能的增强 ssm框…

Spring框架之Spring Boot框架搭建详解|CSDN创作打卡

一、IDEA搭建Spring Boot 1、打开IDEA选择file-new-Project 2、进入新界面先选择Spring Initializr,然后选择SDK版本&#xff0c;及 Initializr Sevice url&#xff0c;然后点击NEXT 3、进入新界面选择自己的项目、选择版本点击NEXT 4、进入新界面选择自己需要的依赖&#xff0…

Spring框架的概述和搭建

文章目录 Spring是什么&#xff1f;Spring的特点轻量级的非侵入式的IOCAOP一站式 Spring的体系结构Spring Hello Word的搭建在Maven中导入Spring的核心基础jar包创建一个类编写Spring的配置文件测试Spring Spring的IOC Spring是什么&#xff1f; Spring是于2003年新起的一个轻…

Spring框架

一&#xff0c;spring框架概述 1、spring框架是轻量级的开源JavaEE框架 2、spring可以解决企业应用开发的复杂性 3、spring有两个核心部分&#xff1a;IOC和AOP IOC&#xff1a;控制反转&#xff0c;把创建对象过程交给Spring来进行管理 AOP&#xff1a;面向切面&#xff0c;不…

简单的spring项目搭建流程

一、搭建步骤 创建空maven项目pom文件导入相应依赖jar包创建包结构&#xff08;domain、test即可)创建JavaBean配置文件编写简单示例 二、开始 1、创建一个空的maven项目 2、在pom.xml文件中导入spring5依赖jar包 <dependency><groupId>org.springframework</…