pandas和numpy有什么关系?
首发

pandas和numpy有什么关系?

优质
请用语音读文章

热门回答:

NumPy中的ndarray用于处理多维数值型数组。重点在于进行数值运算。无索引

*Pandas中的Series类似于DataFrame的子集。DataFrame中的每一列都可以看作是一个Series。有索引。方便进行数据的查询。筛选。所以Pandas重点在于进行数据分析

在数学与统计方法上。NumPy中的ndarray只能进行数值型统计。而Pandas中的DataFrame既可以进行数值型。也可以进行非数值型统计。基于可以容纳不同的数据类型而定

1.NumPy

数值型。重点在于进行矩阵运算

N维数组容器。Numpy是以矩阵为基础的数学计算模块。

Numpy专门针对ndarray的操作和运算进行了设计。所以数组的存储效率和输入输出性能远优于Python中的嵌套列表。数组越大。Numpy的优势就越明显。Numpy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵。比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。

ndarray

所有元素的类型相同。存储元素时内存可以连续;Python里list中的元素类型任意。只能通过寻址方式找到下一个元素

ndarray矩阵结构与matlab或者C++或者fortran都很不一样。没有行优先或者列优先的概念

ndarray支持并行化运算(向量化运算),类似于Matlab

Numpy底层使用C语言编写。内部解除了GIL(全局解释器锁)。其对数组的操作速度不受Python解释器的限制。效率远高于纯Python代码

2.Pandas

多数据类型。重点在于进行数据分析

pansdas是基于Numpy的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型。提供了高效地操作大型数据集所需的工具。pandas提供了大量快速便捷地处理数据的函数和方法。使Python成为强大而高效的数据分析环境的重要因素之一。

1

Series

参看书:Series是一种类似于一维数组的对象。它由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成。**小规模数据**

1

类似于一维数组。索引对象的数据类型是一致的

有了索引标签。方便实际问题中进行信息提取与筛选

python字典类型的数据可以直接给Series对象

Series可以运用ndarray或字典的几乎所有索引操作和函数。融合了字典和ndarray的优点。

属性说明

values获取数组

index获取索引

namevalues的name

index.name索引的name

DataFrame

DataFrame就是按照column和index组织起来的数据集合。类似于excel表格。也类似于基本的database结构。DataFrame是一个表格型的数据结构。它含有一组有序的列。每列可以是不同的值类型(数值、字符串、布尔值等)。DataFrame既有行索引也有列索引。它可以被看做由Series组成的字典(共用同一个索引)。

1

DataFrame范例

yearstatepopdebt

one2000Ohio1.516.5

two2001Ohio1.716.5

three2002Ohio3.616.5

four2001Nevada2.416.5

five2002Nevada2.916.5

six2003Nevada3.216.5

Series类似于DataFrame的子集。从上表可以看出。每一列都对应这一个Series

其他观点:

一、区别

Numpy:是数值计算的扩展包。它能高效处理N维数组,复杂函数,线性代数.

Panadas:是做数据处理。市python的一个数据分析包,

二、简介

1)NumPy:N维数组容器

Numpy专门针对ndarray的操作和运算进行了设计。所以数组的存储效率和输入输出性能远优于Python中的嵌套列表。数组越大。Numpy的优势就越明显。Numpy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵。比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。据说NumPy将Python相当于变成一种免费的更强大的MatLab系统。

1.ndarray的优势

NumPy提供了一个N维数组类型ndarray。它描述了相同类型的“items”的集合。

一、内存块风格:

这是因为ndarray中的所有元素的类型都是相同的。而Python列表中的元素类型是任意的。所以ndarray在存储元素时内存可以连续。而python原生lis就t只能通过寻址方式找到下一个元素。这虽然也导致了在通用性能方面Numpy的ndarray不及Python原生list。但在科学计算中。Numpy的ndarray就可以省掉很多循环语句。代码使用方面比Python原生list简单的多。

二、ndarray支持并行化运算(向量化运算)

三、Numpy底层使用C语言编写。内部解除了GIL(全局解释器锁)。其对数组的操作速度不受Python解释器的限制。效率远高于纯Python代码。

2.Pandas:表格容器

pansdas是基于Numpy的一种工具,该工具是为了解决数据分析任务而创建的,。Pandas 纳入了大量库和一些标准的数据模型。提供了高效地操作大型数据集所需的工具。pandas提供了大量快速便捷地处理数据的函数和方法。使Python成为强大而高效的数据分析环境的重要因素之一。

其他观点:

  当我们使用Python进行数据分析时。有时可能需要根据DataFrame其他列中的值向pandas DataFrame添加一列。

  尽管这听起来很简单。但是如果我们尝试使用if-else条件语句来做。可能会变得有些复杂。值得庆幸的是。有一种使用numpy做到这一点的简单。好方法!

  要学习如何使用它。我们来看一个特定的数据分析问题。我们拥有4,000多个AAA教育推文的数据集。附有图像的推文会获得更多的赞和转发吗?让我们做一些分析找出答案!

  我们将从导入pandas和numpy开始。并加载数据集以查看其外观。

  我们可以看到我们的数据集包含有关每个推文的一些信息。包括:

  1)date —推文发布的日期

  2)time —发推文的时间

  3)tweet -该推文的实际文本

  4)mentions -推文中提及的任何其他Twitter用户

  5)photos —推文中包含的任何图像的URL

  6)replies_count -在推文上的回复数量

  7)retweets_count -推文的转发数

  8)likes_count —在推文上的喜欢次数

  我们还可以看到photos数据的格式有些奇怪。

  使用np.where()添加具有正确/错误条件的pandas列

  对于我们的分析。我们只想查看带有图像的推文是否获得更多的交互。因此我们实际上不需要图像URL。让我们尝试创建一个名为的新列hasimage。该列将包含布尔值- True如果该tweet包含图像。False则不包含图像。

  为此。我们将使用numpy的内置where()函数。此函数按顺序接受三个参数:我们要测试的条件。条件为true时分配给新列的值以及条件为false时分配给新列的值。看起来像这样:

  在我们的数据中。我们可以看到没有图像的推文始终[]在该photos列中具有值。我们可以使用信息并np.where()创建新列hasimage。如下所示:

  在上方。我们可以看到我们的新列已添加到我们的数据集。并且已正确标记了tweet。其中包括图像为True。其他图像为False。

  现在我们有了hasimage专栏。让我们快速制作几个新的DataFrame。一个用于所有图像推文。一个用于所有无图像推文。我们将使用布尔过滤器进行此操作:

  现在。我们已经创建了那些。我们可以使用内置的数学函数.mean()来快速比较每个DataFrame中的推文。

  我们将使用print()语句使结果更易于阅读。我们还需要记住使用str()来将.mean()计算结果转换为字符串。以便可以在我们的打印语句中使用它:

  根据这些结果。似乎包括图像可能会促进AAA教育的更多社群媒体的交互。有图片的推文的平均赞和转发次数是没有图片的推文的三倍。

  添加条件更复杂的pandas专栏

  这种方法效果很好。但是如果我们想添加一个条件更复杂的新列(超出True和False的条件)怎么办?

  例如。为了更深入地研究这个问题。我们可能要创建一些交互性“层”。并评估到达每个层的推文所占的百分比。为了简单起见。让我们使用Likes来衡量交互性。并将tweet分为四个层次:

  1)tier_4 -2个或更少的喜欢

  2)tier_3 — 3-9个赞

  3)tier_2 — 10-15个赞

  4)tier_1 — 16个赞

  为此。我们可以使用称为的函数np.select()。我们给它两个参数:一个条件列表。以及一个我们想要分配给新列中每一行的值的对应列表。

  这意味着顺序很重要:如果conditions满足列表中的第一个条件。则列表中的第一个值values将分配给该行的新列。大数据分析使用numpy在pandas dataframe上添加列https://www.aaa-cg.com.cn/data/2376.html如果满足第二个条件。则将分配第二个值。等等。

  让我们看一下它在Python代码中的外观:


  太棒了!我们创建了另一个新列。该列根据我们的(虽然有些武断)层排名系统对每个tweet进行了分类。

  现在。我们可以使用它来回答有关我们的数据集的更多问题。例如:1级和4级推文中有多少百分比具有图像?

  在这里。我们可以看到尽管图像似乎有所帮助。但它们似乎并不是成功所必需的。

  尽管这是一个非常肤浅的分析。但我们已经在这里实现了我们的真正目标:根据有关现有列中值的条件语句向pandas DataFrames添加列。

  当然。这是可以以多种方式完成的任务。np.where()而np.select()只是许多潜在的两种方法。

https://www.toutiao.com/i6846264263237960204/

以上就是由优质生活领域创作者 生活常识网 整理编辑的,如果觉得有帮助欢迎收藏转发~

分享到 :
相关推荐

哪些韩妆品牌好?

请用语音读文章热门回答:这个感觉自己还是比较有发言权的。用韩妆两年多了。韩国叫得[&...

让你追剧追的最疯狂的是哪一部剧?

请用语音读文章热门回答:必须陈情令啊。。因为他。我开始喜欢周一了。虽然我讨厌上班[&...

军事奇才韩信之死被一群宫女用竹子捅死,成就了两个什么成语?

请用语音读文章热门回答:韩信不仅是个军事奇才。而且是个有故事的人。且不是一般故事[&...

在广告公司做文案策划有出路吗?

请用语音读文章热门回答:非常感谢邀请。虽然本人并没有做过此行业。但也相对的去了[&h...

发表评论

您的电子邮箱地址不会被公开。

评论(2)

  • 风华三生 永久VIP 2022年10月2日 02:52:32

    数据,数组,图像,数值,条件,索引,高效,矩阵,类似于,函数

  • 滴蜡泪 永久VIP 2022年10月2日 02:52:32

    没想到大家都对pandas和numpy有什么关系?感兴趣,不过这这篇解答确实也是太好了

  • 意中人 永久VIP 2022年10月2日 02:52:32

    NumPy中的ndarray用于处理多维数值型数组。重点在于进行数值运算。无索引*Pandas中的Series类似于D