当前位置:首页 > 技术分析 > 正文内容

1 数据分析的基础(数据分析要点)

ruisui884个月前 (02-03)技术分析22

最近集中写了比较多的Python基础语法及基础知识,比较枯燥。最近同步开始了一个基于Python的数据分析的合计,将一些数据分析的理论以及本人的一些数据分析的经验与大家分享。

数据分析的对象

数据分析的对象主要指“结构化数据(structured data)”。

  • 关系表格:其中割裂可能是不同的数据类型(如:字符串、数值、日期等)。它们保存在关系型数据库或数据仓库以及用特殊符号(,、tab)进行分割的文件中。
  • 多维数组(矩阵)。
  • 通过关键列(在数据库或数据仓库中就是主键或外键)相联系鹅多个表。
  • 间隔平均或不平均的时间序列。

Python进行数据分析的重要库

  • NumPy:Python的科学计算基础包。提供如下功能:
    • 快速高效的多维数组对象ndarray。
    • 用于对数组执行元素级计算以及直接对数组执行数学运算的函数。
    • 用于读写硬盘上基于数组的数据集工具。
    • 线性代数运算、傅里叶变换以及随机数生成。
    • 成熟的C API,用于Python插件和原生C、C++、Fortran代码访问NumPy数据结构和计算工具。
    • 可以作为算法与各种库之间传递数据的容器。对于数值型数据,NumPy数组在存储和处理数据时要不内置的Python数据类型高效得多。C、C++、Fortran等语言编写的库可以直接操作NumPy数组中的数据,无需任何数据复制工作。
  • pandas:pandas的命名源于panel data(面板数据,多维结构化数据集)以及Python Data Analysis(Python数据分析)。提供便捷处理结构化数据的数据结构和函数。兼具NumPy高性能数组计算以及结构化表格灵活的数据处理功能。提供索引功能,能够便捷完成数据重塑、切片和切块、聚合以及选取数据子集等操作。pandas有如下常用的对象:
    • DataFrame对象是pandas使用最多的对象,它是面向列(column-oriented)的二维表结构。
    • Series对象,一个一维标签化数组对象。

pandas能够解决的问题:

NumPy和SciPy结合使用,形成了完备和成熟的计算平台,可以处理多种传统的科学计算问题。

  • scikit-learn:2010年诞生。Python的通用机器学习工具包。包括如下模块:
    • 分了:SVM、近邻、随机森林、逻辑回归等。
    • 回归:Lasso、岭回归等。
    • 聚类:k-means、谱聚类等。
    • 降维:PCA、特征选择、矩阵分解等。
    • 选型:网络搜素、交叉验证、度量。
    • 预处理:特征提取、标准化。
  • statsmodels:统计分析包。在R语言的statsmodels项目的启发下,Python创建了Patsy项目,提供statsmodels的公式或模型的规范框架。与scikit-learn比较,statsmodels包含经典统计学和经济计量学算法,包括模块:
    • 回归模型:线性回归,广义线性模型,健壮线性模型,线性混合效应模型等。
    • 方差分析(ANOVA)。
    • 时间序列分析:AR、ARMA、ARIMA、VAR和其他模型。
    • 非参数方法:核密度分析,核回归。
    • 统计模型结果可视化。

statsmodels关注与统计推断,提供不确定估计和参数-p值。相反,scikit-learn注重预测。

Python的工具

IPython

在windows下,cmd窗口内输入ipython,进入ipython控制台。可以逐行输入python语句进行互动。

Python 3.12.4 | packaged by Anaconda, Inc. | (main, Jun 18 2024, 15:03:56) [MSC v.1929 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.25.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: a = 5

In [2]: b = 4

In [3]: a + b
Out[3]: 9

In [4]: from numpy.random import randn

In [5]: data = { i : randn() for i in range(8)}

In [6]: print(data)
{0: -0.36211844228525636, 1: 0.65355675528418, 2: 0.2642507439725111, 3: 0.476844772702203, 4: -0.5354597385357329, 5: -1.604694764965634, 6: -0.12914256026838486, 7: 1.1193414079149966}

Jupyter Notebook

在windows下,cmd窗口内输入jupyter notebook,则在控制台中显示命令。

之后直接打开系统默认的浏览器,弹出:

http://localhost:8888/tree? or http://localhost:8888

在Running页签中选择一个.ipynb进行人机交互。如果之前没有.ipynb,可以在File菜单中创建Notebook进行交互。

选择.ipynb进行交互。

Notebook常用的一些技巧:

  • 输入命令后,点击shift+enter进行执行。
  • tab补全:输入少量字母后,点击tab,IPython shell会搜素已输入变量(对象、函数等)的命名空间。
  • 自省:在方法名(不需要加括号)、变量后加?IPython会返回相关描述。
  • 加??会返回源码。下图展示了?与??的区别。
  • 可以搜索命名空间。如下面的代码,搜索NumPy下所有包含load的命名空间。
  • Ctrl+C:中断正在运行中的代码。
  • 常用快捷键。Jupyter Notebook的快捷键,可能受浏览器热键的影响。测试通过的只有下述两个。

快捷键

说明

Ctrl+ ↑

从当前输入的文本框上移到上一个文本框

Ctrl+ ↓

从当前输入的文本框上移到下一个文本框

以下是一些Notebook或IPython中常用的魔术方法。所谓魔术方法是一些使用%开头的指令。

  • %timeit:测量任何Python语句的执行时间。
  • %pwd:查看Notebook所处的位置。

可以执行dos命令,进行目录切换。

  • %run:运行.py程序。

在当前目录下,创建python_run_test.py文件。其中输入内容:

def f(x, y, z):
    return (x + y) / z

a = 5
b = 6
c = 7.5
result = f(a, b, c)

执行%run python_run_test.py命令运行.py程序。之后直接可以通过交互访问.py脚本中的变量与结果。

  • %load:加载源代码。
  • 魔术方法汇总

命令

说明

%quickref

显示 IPython 的快速参考。

%magic

显示所有魔术命令的详细文档。

%debug

在出现异常的语句进入调试模式。

%hist

打印命令的输入(可以选择输出)历史。

%pdb

出现异常时自动进入调试。

%paste

%cpaste

执行剪贴板中的代码。

开启特别提示,手动粘贴待执行代码。 经测试IPython可用,Notebook不可用。

%reset

删除所有命名空间中的变量和名字。

%page OBJECT

美化打印对象,分页显示。

%run script.py

运行代码。

%prun statement

用 CProfile 运行代码,并报告分析器输出。

%time statement

报告单条语句的执行时间。

%timeit statement

多次运行一条语句,计算平均执行时间。适合执行时间短的代码。

%who,%who ls,%whos

显示命名空间中的变量,三者显示的信息级别不同。

%xdel variable

删除一个变量,并清空任何对它的引用。

  • matplotlib inline:初始化绘图窗口。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/1363.html

标签: pageobject
分享给朋友:

“1 数据分析的基础(数据分析要点)” 的相关文章

抖音 Android 性能优化系列:启动优化实践

启动性能是 APP 使用体验的门面,启动过程耗时较长很可能使用户削减使用 APP 的兴趣,抖音通过对启动性能做劣化实验也验证了其对于业务指标有显著影响。抖音有数亿的日活,启动耗时几百毫秒的增长就可能带来成千上万用户的留存缩减,因此,启动性能的优化成为了抖音 Android 基础技术团队在体验优化方向...

BuildKit 镜像构建工具

#暑期创作大赛#快速开始 对于 Kubernetes 部署,请参阅examples/kubernetes。BuildKit 由buildkitd守护进程和buildctl客户端组成。虽然buildctl客户端可用于 Linux、macOS 和 Windows,但buildkitd守护程序目前仅适用于...

再来一波黑科技工具,低调使用

静读天下静读天下是一个特别优秀的电子书阅读器。它上面有多个在线书库,像古登堡计划,很多种优秀的书杂志,都可以下载来阅读。它还能智能识别章节功能,还支持外置的语音阅读功能。它支持多种文本格式,比如说txt,pdf,epub,mobi等等。为了便于阅读它还有10 种配色方式,还有夜间模式。不过免费版有广...

虚幻引擎5.5现已发布 手游开发、动画制作重大改进

Epic在今天发布了虚幻引擎5.5,现可通过Epic Launcher下载。此版本在动画创作、渲染、虚拟制片、移动端游戏开发和开发人员迭代工具集等方面做出了重大改进。 官方博客:虚幻引擎5.5现已发布,在动画创作、虚拟制作和移动游戏开发方面取得了显著进步,渲染、摄像机内视觉特效和开发人员迭代等领域的...

Gemini应用在Android上广泛推出2.0闪电模式切换器

#头条精品计划# 快速导读谷歌(搜索)应用的测试频道在安卓设备的双子应用中推出了2.0闪电实验功能,现已向稳定用户开放。双子应用通过谷歌应用运行,目前推出的15.50版本中,用户可通过模型选择器体验不同选项,包括1.5专业版、1.5闪电版和2.0闪电实验版。2.0闪电实验模型提供了更快的响应速度和优...

别让“跑焦”毁所有!仅需这一项设置,即可显著改善镜头对焦精度

我常常会收到一些摄影爱好者的私信,也一直在努力的帮助大家解决更多摄影中常见问题。在我收到的所有问题中。有一个问题是最麻烦的,那就是“为什么我的图像看起来模糊?”。这个问题几乎每个人都遇到过,究其原因可以说是多种多样相对复杂。起初我一直认为是对焦问题所导致,也就有了我之前所写的“后按对焦”以及“对焦模...