python数据分析模块:numpy、pandas全解

python数据分析模块:numpy、pandas全解,第1张

一维数组情况:

二维数组情况:

3参数情况:

2参数情况:

1参数情况:

一维情况:

二维情况:

一维情况:

二维情况:

一维情况:

二维情况:第三个参数指定维度

只查看行数、或者列数

逗号隔开两个索引

某些行

某些列

可以看出append()函数在二维数组中添加元素,结果转为了一维数组。

那怎么保持二维数组呢?可以设置axis参数按行或者按列添加

可以看出先把二维数组降成了一维数组,再在索引为1的位置添加元素。

那么怎么保持在二维添加元素呢? 同样设置axis参数

也分按行和按列删除

标记缺失值: isnan()函数

补充缺失值:

同样axis参数可以指定拼接按行还是按列

2 hstack()函数:以水平堆叠的方式拼接数组

3 vstack()函数:以垂直堆叠的方式拼接数组

第二个参数还可以是数组,指定拆分的位置

hsplit()函数:横向拆成几个数组

vsplit()函数:纵向拆成几个数组

数组与数组之间的运算

数组与数值的运算

可以指定整个数组求和,还是按行或者按列

axis=0:每一列的元素求和

axis=1:每一行的元素求和

axis=0:每一列求均值

axis=1:每一行求均值

axis=0:每一列求最大值

axis=1:每一行求最大值

pandas有两个重要的数据结构对象:Series和DataFrame。

Series是创建一个一维数组对象,会自动生成行标签。

会自动生成行列标签

也可以用字典形式生成数据

在用字典生成数据的基础上,同时指定行标签

例如对下表的数据进行读取

4月是第四个表,我们应把sheet_name参数指定为3;因为索引是从0开始的。

可以看出read_excel()函数自动创建了一个DataFrame对象,同时自动把第一行数据当做列标签。

可以看出不给出header参数时,该参数默认为0。

header=1时结果如下:

header=None时结果如下:

index_col=0时,第0列为列标签

index_col=0时

usecols=[2]:指定第二列

指定多列

数据如下:

[外链转存失败,源站可能有防盗链机制,建议将保存下来直接上传(img-j1SHxY8y-1637655972909)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211114192949607png)]

nrows=3时

head()函数中参数为空默认前5行

指定head(3)时如下

numpy模块也是shape

查看特定列的书库类型

特定列数据类型转换

先查看一下所有数据

与单行相比,结果显示的格式不一样了

iloc()挑选:

或者给出区间

挑选数据要么标签,要么索引挑选

或者

或者写成区间

标签挑选

或者索引挑选

先查看一下数据

或者用字典一对一修改

[外链转存失败,源站可能有防盗链机制,建议将保存下来直接上传(img-a6QKIoie-1637655972912)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211123110431201png)]

isin()函数查看表中是否有该值

查看特定列是否有该值

可以看出上述代码并没有替换,那怎么替换呢?

末尾插入一列

指定插入到哪列

axis参数可以指定删除行还是删除列

指定标签删除

指定索引删除

方法三

指定行标签删除

指定索引删除

方法三:

先查看所有数据

info()函数查看数据类型,还可以查看是否有缺失值

isnull()函数查看是否有缺失值

在numpy模块中用isnan()函数

删除有缺失值的行

删除整行都为缺失值的行: 需要指定how参数

不同列的缺失值设置不同的填充值

默认保留第一个重复值所在的行,删除其他重复值所在的行

保留第一个重复值所在的行

保留最后一个重复值所在的行

是重复的就删除

降序如下

参数指定first时,表示在数据有重复值时,越先出现的数据排名越靠前

获取产品为单肩包的行数据

获取数量>60的行数据

获取产品为单肩包 且 数量>60 的行数据

获取产品为单肩包 或 数量>60 的行数据

stack()函数转换成树形结构

how参数指定外连接

on参数指定按哪一列合并

concat()函数采用 全连接 的方式,没有的数设置为缺失值

重置行标签

效果与concat()一样

末尾添加行元素

指定列求和

指定列求均值

指定列求最值

获取单列的

corr()函数获取相关系数

获取指定列与其他列的相关系数

[外链转存失败,源站可能有防盗链机制,建议将保存下来直接上传(img-46g9qgQw-1637655972913)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211123135643804png)]

groupby()函数返回的是一个DataFrameBy对象,该对象包含分组后的数据,但是不能直观地显示出来。

分组后获取指定列的汇总情况

获取多列的汇总情况

获取多列的情况

ta = pdread_excel(‘相关性分析xlsx’)

print(data)

corr()函数获取相关系数

获取指定列与其他列的相关系数

[外链转存中…(img-46g9qgQw-1637655972913)]

groupby()函数返回的是一个DataFrameBy对象,该对象包含分组后的数据,但是不能直观地显示出来。

分组后获取指定列的汇总情况

获取多列的汇总情况

获取多列的情况

Python 可以由一系列的平台支持。它编译完备的格式可以在 Windows 和 MacOS 及其自身 Tk 扩充平台上运行,并可用于开发对用户友好的界面。在 UNIX 和其它平台上, Python 可以作为源代码由程序员自行编译,或者与其它预编的二进制编码共同使用。它超强的适应性更能让它有跨平台适用的能力:用它在 UNIX 平台上书写的程序段95%的情况下无须作任何修改就可用于 Mac 和 PC 机。扩充 Tk 平台对它的支持,甚至可以让基于GUI 格式的应用程序不用大动筋骨就可在上述三种平台上做自由切换,还保持着统一的界面。 正因为这种天然生就的跨平台运行能力,Python 还能支持一些平台的扩充平台,从而简化和免除了对其它语言和环境的适应过程。与 SunOS / Solaris 工具带有 Sun 音频设备及 SGI版本带有视音频接口(包括 OpenGL)一样,Windows Pytyon 解释器也同样带有 Visual C++ 类库和 Windows 音频驱动接口。此外还有与 COM 对象进行通讯的功能。 超大的功能性 Python 几乎无所不能。它的内核很小,但却拥有足够的基本程序块用于设计大部分应用软件。而且在某些情况下该程序语言还可以扩充与 C,C++ 和 Java 语言并用,因此没有它编不了的程序。 Python 解释器还带有极为强大的补充模块库,用于扩充语言能力,进行网络通讯、文本处理和规则表达式匹配。 虽然 Python 的主要特点是隐去程序员的许多低级复杂工作,它还能支持钩、扩充程序以及其它功能对某些 *** 作系统进行低级接入。正因为这种高低兼行的特点,Python 可以视作和 C,Visual Basic 同等级别的语言,或是介于二者间的其它级别的语言。 超凡的扩容性 因为 Python 本身用 C 语言写成(某些扩充平台采用C++语言编写),而且它采用开放式的源代码,这样可以对程序本身进行主动扩充。另外该程序语言的许多模块由 C 和 C++ 界面支持,包括一些诸如网络和DBM数据库接入等基本构件,以及其它如 Tk 等许多先进工具。 此外,Python 还能融入 C 或 C++ 语言,从而可以使用 Python 语言为应用程序提供编程界面。也正基于它的跨语言开发的支持能力,还可以使用 Python 设计应用程序后再输送到为 C 语言环境而无须将程序用 C 语言重写,因为两种语言均可同时使用。 JPython 是一个完全采用 Java 语言编写的 Python 解释器,这就意味着任何 Python 程序都可与一个 Java 对象或是使用 Python 对象的应用程序相联结。 超常的简易性 了解了 Python 以上几个基本特点后,再对程序语言它内容进行了解就相对容易了。该语言内核很小,而且格式和文体简明。由于所有其它的组件和扩充部分都使用完全一样的句法结构,利用 Python 编程会很快让人速成。 但这并不意味着 Python 语言就没有复杂的地方。对其许多扩充部分和内库都必需经过深思熟虑后方可进行有效的利用。 超强的功能性 拥有如此广泛的支持和博采众长的特征,Python 在处理一系列问题上都显得特别有效。以下为它的功能简介: 计算器: 由 Python 支持的一个扩充程序叫 NumPy,它可以提供与许多标准数学库相连的接口。Python 语言还拥有无限精确的特性,可以单独处理100位数字的算术。 文字处理器: Python 能够对任何数据进行分割、累加和总结。它的模块可以对日志文件行中的元素进行分割,并根据内置的数据种类对其信息进行记录和总结,最后才进行输出。它的规则表达式库使程序员可以使用 emacs,Perl 等等。 这再次证明 Python 的无所不能,曾经有程序员还利用 Python 编制成非常复杂的 SGML 处理工具。 便捷的应用开发: Python对程序员而言一目了然,用它编程迅速有效。它博大的模块库可以提供针对不同协议、工具和库的接口。免除重新开发之苦。 由于Python 还支持 Tk 工具,所以可以在几个小时内完成一个应用软件,而用 Perl 语言可能会需要2到3天,用 C 语言甚至要几个星期。 跨平台开发: Python 以中立方式支持不同的一系列平台,如果用户使用的系统包含不同的平台,使用 Python 开发应用程序则再好不过;它这种适应性也可以为系统预留使用其它工具的可能。对于频繁更换平台用户,Python 是个理想的选择。 为最终用户提供软件服务时,Python 也是个备选方案,可以避免同时用不同应用软件编程的时间和费用。 系统设备 Python旨在避免 *** 作系统中低级部分的滋扰,但如若需要主动进入这些低级部分时也完全可以通过相应的工具和扩充件来实现。与 *** 作系统一样, Python 可以进入相同的的功能,并予以备份和扩充,而且备份和扩充后的功能会增加 Python 的所有的适应性和接口能力。 互联网程序设计 Python 带有的标准模块可以对网络插槽进行初级和协议级别的通讯,比如,如果要从 POP 服务器上读取电子邮件,Python 随带的库模块可以做到。另外, Python 还支持 XML、HTML和 CGI 库文件,所以利用它可以解析用户输入的需求,并通过网络服务器产生最佳质量的成果。 程序员还可为拥有 Python 内置解释器的 Apache、Unix 和 Windows 网络服务器编译模块。基于 CGI 程序的功效,可以很方便地执行 Python 语句而不用单独装载。 数据库编程 Python 中有无数的扩充模块可以连接如 Orcle、Informix 、mySOL和PostgreSql等通用的数据库系统;还有称作 Gadfly 的工具可以独立Python 提供完全的SQL环境。Python 有强大的文本和数据处理能力,可以用它作为不同数据库间的连接,比起那些数据库附带的总结和汇报工具显得更有优势。同时,由于它支持不同系统,用同样的接口也可以连接任何数据库。可以用 Tk 在支持平台上建立前端,马上就可获得高速跨平台、独立数据库的查询工具。 其它 Python 应用范围广泛,几乎没有它不适配的语言;凭籍它的微小内核、丰富功能、多样数据,Python 提供了一个良好的程序构建基础。综合了C 和 C++二者的优点,只要采用合适的结构和方式,便可对 Python 程序进行无限的扩充。除了一大堆显著的优点,Python 也有缺点。 要列出 Python 的缺点确实不太容易。Python 在其扩充模块中提供了大部分的功能,并充分显示了对其增加功能有多容易,一旦用它还不能解决问题,那么也仅需要利用 C 或 C++ 语言重新编写一个扩充程序便可。 批评 Python 的人往往不是说Python 缺乏某种功能,而是对这种功能并不了解。通常还有一种抱怨说 Python 缺少规则表达式的支持-但实际上有两个模块可以用来处理规则表达式,其中之一还可以完全用来支持 Perl 语言的句式句法。对规则表达式的处理并没有编进该语言中,但并不等于它作不到。 针对 Perl、Rebol 和 Java 语句而言, Python 的优势在于它的内核很小。这减少了执行的时间,因为在运行时需要装载的代码较少,而且这个特点也使它有着更广的适应性。 一旦熟悉了 Python 语句的简明风格,它的强大优势顿时便会凸现出来。用它编就的程序历久不衰。 Python 的理想用户群 它适合不同类型的用户以解决不同类型的问题。大部分时候这些问题一般不为人所知,因为它们有着较高的保密性。也有大型公司用它进行商用开发,并展示开发所获的成果。 红帽 (Red Hat )曾用 Python 和 Tk 一起成功开发配置和管理 *** 作系统的可视界面。整个系统可以全面控制 Linux *** 作系统,并根据用户选择对配置文件作自动更新。 Infoseek 在其公用搜索引擎使用了Python。该公司还用 Python 对其软件进行定制,使最终用户能对该网站内容进行方便下栽。 美国航空航天局也在不少领域中用到 Python 程序语言,最出名的莫过于在任务控制中心将 Python 用于任务计划;对 Python 在其它方面的使用例如用其计算天体方位和设计卫星的路径等等都充分体现了 Python 的超强计算能力。 以在“星球大站”、“阿贝斯 (Abyss)”、 “星球之旅 (Star Trek)”、 “印地安那琼斯 (Indiana Jones)”超级大片中当纲特技和动画制作的工业光魔公司 (Industrial Light)也采用 Python 制作商业动画。 什么是Python Python是一种即译式的,互动的,面向对象的编程语言,它包含了模组式的 *** 作,异常处理,动态资料形态,十分高层次的动态资料结构,以及类别的使用。Python揉合了简单的语法和强大的功能。它的语法表达优美易读。它具有很多优秀的脚本语言的特点:解释的,面向对象的,内建的高级数据结构,支持模块和包,支持多种平台,可扩展。而且它还支持交互式方式运行,图形方式运行。它拥有众多的编程界面支持各种 *** 作系统平台以及众多的各类函数库。利用C和C++可以对它进行扩充。个别的应用软件如果需要有一个可程序化界面也可以利用它来做为扩展语言用。最后,Python的可移植度非常高:它可以在许多的Unix类平台上运行,在Mac,MS-DOS,视窗Windows,Windows NT,OS/2,BeOS,以至RISCOS上都有相关的Python版本。 简单的说它具有以下一些特征: l 是一种解释性的,面向对象的,具有动态语义的程序设计语言。 l 适合快速开发。 l 能集成到其他流行的服务器,也自带服务器。 l 提供清晰的数据/逻辑/表示的分离。 l 带有可扩展的内置对象和强大的集成安全模块。 Python的历史 Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC语言的一种继承。之所以选中Python(大蟒蛇的意思)作为程序的名字,是因为他是一个Monty 大蟒蛇飞行马戏团的爱好者。 ABC是由Guido参加设计的一种教学语言(没听说过)。就Guido本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,Guido认为是非开放造成的。Guido决心在Python中避免这一错误(的确如此,Python与其它的语言如C,C++和Java结合的非常好)。同时,他还想实现在ABC中闪现过但未曾实现的东西。 就这样,Python在Guido手中诞生了(真要感谢他)。实际上,第一个实现是在Mac机上。可以说,Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix Shell和C的习惯。 Python可用在哪些地方 Python可以用在许多场合。当你需要大量的动态调整,要容易使用,功能强大并且富有d性的情况,Python可以发挥很好的功效。 在处理文字方面,Python的核心功能(不需要任何扩充库的情况下)比别的编程语言更为易用而且速度相当。这使Python在需要处理字符串的工作(包括系统管理,CGI编程)上成为高效的语言。 当Python加上它的标准扩充库(如PIL,COM,Numeric,Oracledb,kjbuckets,tkinter,win32api,等等)或是特别扩充库(你自己写的,或是用SWING做的,或是利用ILU/COBRA/com的)后,它可以变成一个很好的“胶合语言”或者叫“指导语言”。就是指把不同的编程环境和互不相关的软件功能整合的工具。例如把Numeric和Oracledb透过Python结合起来你就可以替你的资料库数据做系统分析。Python的简单、易用以及方便而强大的c/c++扩展方面使它成为一种十分优秀的“胶合语言”。 许多开发人员也在写图形用户界面时广泛的采用了Python。如果在Windows下,如果想做一个图形界面程序,那么Python可以胜任。可以去wxPython/projects/swig/)。 有趣的语法 Guido认为Python的语法是非常优美的。其中一点就是,块语句的表示不是C语言常用的{}对,或其它符号对,而是采用缩近表示法!有趣吧。就这一点来说,Guido的解释是:首先,使用缩近表示法减少了视觉上的混乱,并且使程序变短,这样就减少了需要对基本代码单元注意的范围;其次,它减少了程序员的自由度,更有利于统一风格,使得阅读别人的程序更容易。感觉还是不错的,就C语言来说,在if语句后面大括号的写法就好几种,不同的人喜欢不同的样子,还不如统一起来,都不会看得别扭。 在每个类或函数的定义后面,第一行可以是说明语句,根本不需要注释符标记。对于后面跟块语句的语句,后面应跟上一个冒号。一行语句不能太长,因为没有行结束符,如果超长则要使用续行符(\\)。还有一些有趣的比如说,象下面的一个比较处理,用C语言为: if (2 用Python可以表示为 if (2 什么是Zope Zope是一个开放源代码的Web应用服务器,采用Python语言开发,使用它您可以方便的构建内容管理、内部网、门户网站、和其他的定制应用。 l 高度面向对象的Web开发平台,采用Python语言开发。 l 可以运行在几乎所有流行的 *** 作系统上,支持多语言。 l 能集成到其他流行的服务器,也自带服务器。 l 提供清晰的数据/逻辑/表示的分离 。 l 带有可扩展的内置对象和强大的集成安全模块。 什么是Plone Pone是一个Zope上的一个用户友好、功能强大的开放源代码内容管理系统。Plone适合用作内部网/外部网的服务器、文档发布系统、门户服务器和异地协同群件工具,到目前,Plone其实已经发展成为了一个应用开发平台。 l 是一种功能强大的开放源码(Open Source)内容管理系统(CMS) 。 l 通过Web浏览器来访问、编辑内容和管理,易于更新内容 。 l 无需编程,即可创建新的内容类型 。 l 协同的编辑和发布机制 。

您好!

如果在Spyder中运行代码时出现“module 'numpy' has no attribute”,这通常是由于您在代码中导入了名为numpy的变量,而没有实际导入NumPy库。为了解决这个问题,您需要在代码的开头加上一行:

这将导入NumPy库,并且您就可以在代码中使用它了。此外,您还可以在代码中将np替换为其他名称,例如:

然后您可以在代码中使用my_favorite_library来调用NumPy中的函数和对象。

希望这能帮助您解决问题!

方法/步骤

第一步我们首先需要知道相关性主要有两个方向,一个是正方向一个是负方向,相关性系数是衡量两个变量之间影响程度,如下图所示:

第二步下面通过公式计算两个变量之间相关性系数,代码如下:

import numpy

import pandas

X = [52,19,7,33,2]

Y = [162,61,22,100,6]

#公式计算#均值XMean = numpymean(X)

YMean = numpymean(Y)

#标准差XSD = numpystd(X)

YSD = numpystd(Y)

#z分数ZX = (X-XMean)/XSD

ZY = (Y-YMean)/YSD#相关系数

r = numpysum(ZXZY)/(len(X))

print(r)

第三步运行程序,可以得到相关性系数r ,r的值是0999674032661831,相关性非常高,如下图所示:

第四步我们也可以通过numpy的corrcoef方法计算相关性系数,输入代码

t=numpycorrcoef(X,Y)

print(t)

可以看到X与Y和Y与X的相关性系数,如下图所示:

第五步我们也可以通过pandas的corr方法计算相关性系数,代码

data = pandasDataFrame({'X':X,'Y':Y})

t2=datacorr()

print(t2)

得到了相同的结果,如下图所示:

以上就是关于python数据分析模块:numpy、pandas全解全部的内容,包括:python数据分析模块:numpy、pandas全解、如何系统地学习Python 中 matplotlib,numpy,scipy,pandas、怎样使用numpy库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10102182.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存