从零开始学python | 如何在Python中实现二维数组?

举报
Yuchuan 发表于 2021/03/24 23:11:21 2021/03/24
【摘要】 您可以在python中对2-d数组执行任何操作。我们从了解数组开始,然后看到如何高效地执行每个操作。从创建到更新二维数组,我们涵盖了所有内容,因此,我们已经结束了有关“ Python中的2D数组”的文章。随着越来越流行,机器学习,人工智能,数据科学等领域的需求也增加了。要掌握您的技能,

欢迎大家阅读python教程,我们将学习Python中的2D数组。整篇文章都牢记流程,将其分为几个主题。本文将介绍以下指针,

因此,请系紧安全带,让我们开始使用Python中的2D阵列这篇文章。

Python中的2D数组

什么是数组

因此,在深入研究数组实现之前,首先让我们看一下数组到底是什么!

数组是一种线性数据结构,在顺序存储位置中包含相同类型的元素的有序集合。因此,数组是一种数据结构,用于将相同类型的元素线性存储在内存中。
在每种编程语言中,数组都表示为Array_name [index]。索引是指出特定元素在存储位置中的位置号的数字。由于它使用顺序存储器,因此索引号也是连续的。很显然要注意,数组索引从0开始,到n-1结束,其中n是数组的大小。

与本文一起探讨Python中的2D数组。

如何在python中定义和使用数组?

因此,我们都知道数组在python中不是作为单独的对象存在的,但是我们可以使用列表对象来定义并将其用作数组。

例如,考虑一个由十个数字组成的数组:A = {1,2,3,4,5}
用于声明数组的语法:

array_name=[ ]

如果要使用值对其进行初始化,则可以使用:

array_name = [value1, value2, value3, value n]

要遍历数组,我们使用索引,例如,如果我们想获取值2,则使用

array_name[ location of value 2 starting from 0]

与本文一起探讨Python中的2D数组。

使用列表作为数组的优点

使用列表描述数组有很多优点。它不仅支持数组的基本操作,而且还具有一些高级操作:

  • 它支持切片。通过切片,我们可以将数组切成任意尺寸。
  • 它支持负索引。现在您可以使用array_name [-1]来获取最后一个元素,类似地-2给出倒数第二个元素。
  • 它具有内置功能来存储,更新和处理数据。
  • 它可以将双相似的元素存储在一起,并带有重载的+和*运算符。

因此,列表提供了一种实现数组的有力方法。

与本文一起探讨Python中的2D数组。

什么是二维数组,以及如何使用列表对象创建数组

现在最重要的部分到了。2维数组。从机器学习数据帧到矩阵,使用最广泛的数组是2维数组。
基本上将二维数组定义为数组数组。这听起来可能有点令人困惑,但让我们仅了解其含义。

到目前为止,我们已经看到一个数组,其中保存着[[1,2,3,4,5]之类的数据,如果要绘制这些点,则可以将其解释为坐标几何中的线。如果我说我有5个学科的5名学生的数据,该怎么办:

  • 学生1 = [98,95,92,99,78]
  • 学生2 = [95,85,68,48,45]
  • 学生3 = [98,95,92,99,25]
  • 学生4 = [98、72、58、99、75]
  • 学生5 = [98,95,92,99,48]

现在,您可以有五个不同的列表来存储此数据,但这将效率低下,并且坦率地说,这不是使用列表的好方法。而且,甚至可能有少量数据,但如果有10万名学生,我们将怎么办?显然,这种构造不能作为优秀的程序员接受。

二维数组来了。如果我们可以将这五个学生数组存储在一个数组中怎么办?好吧,我们可以!这就是数组的意义。我们将这些数组存储在数组本身内。因为如果您考虑这些元素的几何点来绘制这些元素,那么您将需要两个平面(即x和y),因此称为2-d数组或二维数组。

相同的二维数组将是:

student_data = [ [98, 95, 92, 99, 78], [95, 85, 68, 48, 45], [98, 95, 92, 99, 25], [98, 72, 58, 99, 75], [98, 95, 92, 99, 48] ]

要访问元素,我们将使用两个索引,第一个索引定义元素存储在列表中的位置,第二个索引定义元素在该列表中的位置。

例如,我们要访问主题4的学生3的标记,那么我们可以使用

student_data[2][3]

输出-Python Edureka中的2D数组

注意:我们已使用位置2的索引号2,因为索引从0开始

与本文一起探讨Python中的2D数组。

如何在二维数组中插入元素?

现在,我们已经学习了如何创建,初始化和遍历二维数组的元素。现在,我们将看到元素如何存储在二维数组中。

考虑如果我们想将学生6的结果存储在这些2维数组中,那么我们可以使用内置函数append()。

输出-Python Edureka中的2D数组

例子

student6 = [ 56, 89, 48, 96, 45]

然后我们要将其存储在student_data中,

student_data.append(student6)

这些将把元素添加到二维数组的最后位置。因此,基本上,一般语法为:

array_name.append(list_name_to_add)

假设学生2对科目6进行了额外的考试,那么他的分数也必须包括在内。所以在这里我们也可以使用相同的append函数。
但是插入元素的语法是:

Array_name[ index_of_sub_array ].append(element_to_add)

使用以上语法,如果我们想插入student2获得的98分,则可以使用以下语法:

student_data[ 1 ].append( 98 )

输出-Python Edureka中的2D数组

与本文一起探讨Python中的2D数组。

如何更新二维数组的元素?

因此,到目前为止,我们已经了解了如何创建二维数组,如何对其进行初始化并用数据填充该数组以及如何在二维数组的任何位置插入元素。现在让我们进入更新二维数组元素的下一个重要主题。

为了理解这一点,让我们继续以student_data为例。
现在,让student3对subject5进行复试,并获得98分,现在必须更新此增加的分数。那么我们怎样才能做到这一点呢?我们可以简单地使用赋值运算符来实现。

student_data[ 2 ][ 4 ] = 98

图像-Python中的二维数组的直观方法-Edureka

如您所见,将25增加到98。

因此,可以使用广义语法来更新2-d数组的任何元素:

Array_name[index_of_sub_array][ index_of_element_to_update ] = new_value

有了这些,您可以一个一个地更新元素。但是,如果您想更新学生的完整分数表怎么办?然后,编辑每个条目都很繁琐。因此,尽管一一编辑元素,我们仍可以更改整个信息数组。

比方说,student1的数据输入错误,现在必须更新,因此我们可以创建一个新的student1的mark_sheet数组,然后更新相应的列表。很明显要注意,当我们整体替换数组时,不需要[index_of_element_to_update],因此用于更新整个数组的新通用语法将是:

Array_name[index_of_sub_array] = new_sub_array

例如,错误输入了student1标记,而新标记是45、78、96、78、85。
则可以如下更新:

student1 = [45, 78, 96, 78, 85]

student_data[ 0 ] = student1

图像-Python中的二维数组的直观方法-Edureka

您可以看到完整数组的更新方式。

随本文一起移动

如何删除二维数组的元素?

现在让我们看看如何删除二维数组的任何元素。假设学生4离开学校,必须删除他的记录,那么我们将必须删除他的整个条目,或者我们可以说数组。因此,要删除列表对象的元素,我们使用pop函数。

因此,要删除student4的数据,我们可以执行以下操作:

student_data.pop( 3 )

图像-Python中的二维数组的直观方法-Edureka

通用语法为:

array_name.pop(index_of_sub_array_to_remove)

但是,在某些情况下,我们必须删除特定的元素而不是完整的数组。我们可以使用pop函数实现相同的功能。
考虑到学生1未从科目2中注册,则必须删除其在科目2中的条目。因此,要删除student1的subject2条目,

student_data[ 0 ].pop(1)

图像-Python中的二维数组的直观方法-Edureka

因此,删除二维数组元素的通用语法为:

Array_name[index_of_sub_array].pop(index_of_element_to_remove)

这样,您可以在python中对2-d数组执行任何操作。我们从了解数组开始,然后看到如何高效地执行每个操作。从创建到更新二维数组,我们涵盖了所有内容。是Abhishek !,将在本系列的下一篇文章中再次吸引您。

笔记:

索引从0开始而不是1

因此,我们已经结束了有关“ Python中的2D数组”的文章。随着越来越流行,机器学习,人工智能,数据科学等领域的需求也增加了。要掌握您的技能,

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。