📅  最后修改于: 2020-09-01 05:37:07             🧑  作者: Mango
本教程将通过一些常见的方法从Python数组中删除元素。这是我们将在本文中介绍的所有技术和方法的列表:
数组和列表在Python中不是一回事。尽管列表比数组更常用,但数组仍然有其用例。两者之间的主要区别是列表可用于存储任意值。它们也是异构的,这意味着它们可以同时存储整数,字符串,其他对象等。
另一方面,数组与C中的数组相似。它们是用于存储相同类型元素的同类数据结构,并且使用的内存比列表少得多。
尽管本教程中显示的大多数技术都可以在这两种数据结构上使用,但本教程将重点关注数组而不是列表。
适当地,该remove()
函数可以在Python中的任何数组上使用。要使用它,我们只需传递要删除的元素的值即可。假设我们有以下数组:
array = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
要删除例如element 40
,我们只需编写:
array.remove(40)
结果是没有值的相同数组40
:
[10, 20, 30, 50, 60, 70, 80, 90, 100]
该pop()
函数接受我们要删除的元素的索引。如果我们拥有与以前相同的数组(值从10到100),我们可以编写如下内容:
index = 3
array.pop(index)
如果我们打印pop方法的结果,则该值为40
:
[10, 20, 30, 50, 60, 70, 80, 90, 100]
与pop()
堆栈数据结构中的工作原理类似,此处pop()
还返回刚删除的值。
唯一的区别是,使用数组,我们可以删除任意元素。对于堆栈,只能删除顶部的元素(即最后添加的元素)。
del
是用于删除对象的python关键字。它的确切行为取决于上下文,因此我们也可以使用它来删除数组元素。再一次,让我们使用与以前相同的数组和索引:
array = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
index = 3
要删除index处的元素3
,我们只需键入以下内容:
del array[index]
如果现在打印数组内容,将得到以下输出:
[10, 20, 30, 50, 60, 70, 80, 90, 100]
NumPy数组从技术上讲也是数组,由于它们是常用的(尤其是在机器学习中),因此让我们展示一种从numpy
数组中删除元素的方法。在使用之前numpy
,有必要将其导入
import numpy as np
要创建一个numpy
数组,我们可以这样包装当前数组np.array()
:
a = np.array(array)
另外,我们也可以在方法调用本身内部声明一个新数组:
a = np.array([10, 20, 30, 40, 50, 60, 70, 80, 90, 100])
现在要删除index处的元素3
,我们使用以下代码:
index = 3
a = np.delete(a, index)
delete()
是在numpy
模块中声明的静态方法。它接受要删除的数组和元素的索引。
该方法返回一个没有删除元素的新数组:
[10, 20, 30, 50, 60, 70, 80, 90, 100]
在Python中有多种删除数组元素的方法。有时我们可能希望按索引,有时按值删除元素。有时我们使用Python的默认数组,有时甚至使用numpy
数组。
在所有这些情况下,最好有多种选择来帮助我们决定使用哪种技术。