📜  在Python中从数组中删除元素

📅  最后修改于: 2020-09-01 05:37:07             🧑  作者: Mango

介绍

本教程将通过一些常见的方法从Python数组中删除元素。这是我们将在本文中介绍的所有技术和方法的列表:

Python中的数组

数组和列表在Python中不是一回事。尽管列表比数组更常用,但数组仍然有其用例。两者之间的主要区别是列表可用于存储任意值。它们也是异构的,这意味着它们可以同时存储整数,字符串,其他对象等。

另一方面,数组与C中的数组相似。它们是用于存储相同类型元素同类数据结构,并且使用的内存比列表少得多。

尽管本教程中显示的大多数技术都可以在这两种数据结构上使用,但本教程将重点关注数组而不是列表

使用remove()

适当地,该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()

pop()函数接受我们要删除的元素的索引。如果我们拥有与以前相同的数组(值从10到100),我们可以编写如下内容:

index = 3
array.pop(index)

如果我们打印pop方法的结果,则该值为40

[10, 20, 30, 50, 60, 70, 80, 90, 100]

pop()堆栈数据结构中的工作原理类似,此处pop()还返回刚删除的值。

唯一的区别是,使用数组,我们可以删除任意元素。对于堆栈,只能删除顶部的元素(即最后添加的元素)。

使用del

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数组中删除元素的方法。在使用之前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数组。

在所有这些情况下,最好有多种选择来帮助我们决定使用哪种技术。