- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Python常用数据分析模块原理解析由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
前言 。
python是一门优秀的编程语言,而是python成为数据分析软件的是因为python强大的扩展模块。也就是这些python的扩展包让python可以做数据分析,主要包括numpy,scipy,pandas,matplotlib,scikit-learn等等诸多强大的模块,在结合上ipython交互工具 ,以及python强大的爬虫数据获取能力,字符串处理能力,让python成为完整的数据分析工具.
numpy 。
官网:https://www.scipy.org/ 。
NumPy(Numerical Python的简称)是高性能科学计算和数据分析的基础包。NumPy最重要的一个特点就是其N维数组对象(即ndarray),该对象是一个快速而灵活的大数据集容器。可以利用这种数组对整块数据执行一些数学运算,比python自带的数组以及元组效率更高,其语法跟变量元素之间的运算一样,无需进行循环操作.
在使用python进行数据分析的过程中,我们大部分时候是不会直接使用numpy包,而是其他包要用到numpy。可以说numpy是整个python数据分析工作的基石.
举个简单的案例,我们要计算100000个随机数的值,如果传统编程需要写循环,用了2.2s,而使用numpy数据结构,则可以进行向量化操作,无需循环,只需要28.2ms节约大量时间.
1
2
3
4
5
6
7
|
In [
1
]:
import
numpy
In [
2
]: my_arr
=
np.arange(
1000000
)
In [
3
]: my_list
=
list
(
range
(
1000000
))
In [
4
]:
%
time
for
_
in
range
(
10
): my_arr2
=
my_arr
*
2
Wall time:
28.2
ms
In [
5
]:
%
time
for
_
in
range
(
10
): my_list2
=
[x
*
2
for
x
in
my_list]
Wall time:
2.2
s
|
pandas 。
官网:https://pandas.pydata.org/ 。
Python Data Analysis Library,可根据需要帮助组织各种参数的数据。pandas基于numpy底层数据结构。让python成为类似Excel,R等统计学软件,主要就是pandas的功劳。pandas在python中实现了各种数据的计算 ,分组计算,添加删除,排序,筛选,抽样等都能工作。使Pandas成为数据科学家中最受欢迎的库.
pandas主要包含两种数据结构:Series与DataFrame。Series是一种类似于以为数组的对象,它由一组数据以及与之相关的数据标签组成,仅有一组数据即可产生最简单的Series。Series类似于R中的向量,属于以为数据。Series可以构成二维的DataFrame。行为记录值,列为观测值。如果熟悉R中的数据框DataFrame,在使用pandas则会轻松上手,因为作者自己说pandas的DataFrame就是模仿R的数据框.
scipy 。
官网:https://www.scipy.org/ 。
scipy是一个用于数学、科学、工程领域的常用软件包,可以处理插值、积分、优化、图像处理、常微分方程数值解的求解、信号处理等问题。它用于有效计算Numpy矩阵,使Numpy和Scipy协同工作,高效解决问题。 Scipy是由针对特定任务的子模块组成:
matplotlib 。
官网:https://matplotlib.org/ 。
matplotlib是python中优秀的数据可视化的包,根据命名就可以看到,它其实是一个matlib的plot库,也就是利用python将matlib的绘图功能实现了一遍。如果你熟悉matlib绘图,那么将直接上手。matplotlib是Python编程语言及其数值数学扩展包 NumPy的可视化操作界面。它为利用通用的图形用户界面工具包,如Tkinter, wxPython, Qt或GTK+向应用程序嵌入式绘图提供了应用程序接口(API).
plotnine 。
官网:https://plotnine.readthedocs.io/en/stable/ 。
如果你不熟悉matlib,而是从R转到python,可能不太喜欢matplotlib的绘图模式和风格,觉得不如R绘图方便。而且R还有ggplot2包。那么plotnine则是将ggplot2移植到python上,在python上完全重现ggplot2的功能。如果你熟悉ggplot2的语法,直接上手。不过,我倒是觉得这个工作意义不大,这属于重新发明轮子,后面如果ggplot2在更新了,二者之间还是会有一些差别,用户会有些困扰。当然,这样的问题仁者见仁,愚者见愚。聊胜于无,如果想在 python环境中完成全部工作,有了这个包还是非常不错的.
scikit-learn 。
官网:https://scikit-learn.org/stable/ 。
有很多人不是天天喜欢三句话不离大数据,机器学习,人工智能吗。那么scikit-learn则是完成python大数据机器学习的包。scikit-Learn是python数据分析中非常重要的一个模块,它是一个基于NumPy和SciPy构建的开源机器学习工具包。 它具有常用的ML算法,可用于预处理,分类,回归以及聚类。算法包括[支持向量机]( support vector machines,ridge回归, 网格搜索算法(Grid Search algorithm) ,k均值聚类等等。另外还有样本数据集。API易学易用。 在几乎所有平台上的良好性能,它在学术和商业用途中都很受欢迎.
其他:
除了以上包之外,python还有很多很多其他有关数据分析的包,不胜枚举,比如图片识别的opencv,google机器学习开源库tensorflow,PyTorch等等,一个崭新的世界等待你去发现。但是前提是前面基础这些包熟悉了,以及有最核心的计算机以及统计学基础,否则就是无水之源,无木之本,你所谓的人工智能,只能是人工智障.
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:https://www.cnblogs.com/zwhy8/p/13329881.html 。
最后此篇关于Python常用数据分析模块原理解析的文章就讲到这里了,如果你想了解更多关于Python常用数据分析模块原理解析的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在处理一组标记为 160 个组的 173k 点。我想通过合并最接近的(到 9 或 10 个组)来减少组/集群的数量。我搜索过 sklearn 或类似的库,但没有成功。 我猜它只是通过 knn 聚类
我有一个扁平数字列表,这些数字逻辑上以 3 为一组,其中每个三元组是 (number, __ignored, flag[0 or 1]),例如: [7,56,1, 8,0,0, 2,0,0, 6,1,
我正在使用 pipenv 来管理我的包。我想编写一个 python 脚本来调用另一个使用不同虚拟环境(VE)的 python 脚本。 如何运行使用 VE1 的 python 脚本 1 并调用另一个 p
假设我有一个文件 script.py 位于 path = "foo/bar/script.py"。我正在寻找一种在 Python 中通过函数 execute_script() 从我的主要 Python
这听起来像是谜语或笑话,但实际上我还没有找到这个问题的答案。 问题到底是什么? 我想运行 2 个脚本。在第一个脚本中,我调用另一个脚本,但我希望它们继续并行,而不是在两个单独的线程中。主要是我不希望第
我有一个带有 python 2.5.5 的软件。我想发送一个命令,该命令将在 python 2.7.5 中启动一个脚本,然后继续执行该脚本。 我试过用 #!python2.7.5 和http://re
我在 python 命令行(使用 python 2.7)中,并尝试运行 Python 脚本。我的操作系统是 Windows 7。我已将我的目录设置为包含我所有脚本的文件夹,使用: os.chdir("
剧透:部分解决(见最后)。 以下是使用 Python 嵌入的代码示例: #include int main(int argc, char** argv) { Py_SetPythonHome
假设我有以下列表,对应于及时的股票价格: prices = [1, 3, 7, 10, 9, 8, 5, 3, 6, 8, 12, 9, 6, 10, 13, 8, 4, 11] 我想确定以下总体上最
所以我试图在选择某个单选按钮时更改此框架的背景。 我的框架位于一个类中,并且单选按钮的功能位于该类之外。 (这样我就可以在所有其他框架上调用它们。) 问题是每当我选择单选按钮时都会出现以下错误: co
我正在尝试将字符串与 python 中的正则表达式进行比较,如下所示, #!/usr/bin/env python3 import re str1 = "Expecting property name
考虑以下原型(prototype) Boost.Python 模块,该模块从单独的 C++ 头文件中引入类“D”。 /* file: a/b.cpp */ BOOST_PYTHON_MODULE(c)
如何编写一个程序来“识别函数调用的行号?” python 检查模块提供了定位行号的选项,但是, def di(): return inspect.currentframe().f_back.f_l
我已经使用 macports 安装了 Python 2.7,并且由于我的 $PATH 变量,这就是我输入 $ python 时得到的变量。然而,virtualenv 默认使用 Python 2.6,除
我只想问如何加快 python 上的 re.search 速度。 我有一个很长的字符串行,长度为 176861(即带有一些符号的字母数字字符),我使用此函数测试了该行以进行研究: def getExe
list1= [u'%app%%General%%Council%', u'%people%', u'%people%%Regional%%Council%%Mandate%', u'%ppp%%Ge
这个问题在这里已经有了答案: Is it Pythonic to use list comprehensions for just side effects? (7 个答案) 关闭 4 个月前。 告
我想用 Python 将两个列表组合成一个列表,方法如下: a = [1,1,1,2,2,2,3,3,3,3] b= ["Sun", "is", "bright", "June","and" ,"Ju
我正在运行带有最新 Boost 发行版 (1.55.0) 的 Mac OS X 10.8.4 (Darwin 12.4.0)。我正在按照说明 here构建包含在我的发行版中的教程 Boost-Pyth
学习 Python,我正在尝试制作一个没有任何第 3 方库的网络抓取工具,这样过程对我来说并没有简化,而且我知道我在做什么。我浏览了一些在线资源,但所有这些都让我对某些事情感到困惑。 html 看起来
我是一名优秀的程序员,十分优秀!