如何从 numpy 数组中删除特定元素
您可以使用以下方法从 NumPy 数组中删除特定元素:
方法一:删除等于特定值的元素
#remove elements whose value is equal to 12
new_array = np. delete (original_array, np. where (original_array == 12))
方法二:删除列表中等于某个值的元素
#remove elements whose value is equal to 2, 5, or 12
new_array = np. setdiff1d (original_array, [2, 5, 12])
方法 3:根据索引位置删除项目
#remove elements in index positions 0 and 6
new_array = np. delete (original_array, [0, 6])
以下示例展示了如何在实践中使用每种方法。
示例 1:删除等于特定值的元素
以下代码显示如何从 NumPy 数组中删除值等于 12 的所有元素:
import numpy as np
#define original array of values
original_array = np. array ([1, 2, 2, 4, 5, 7, 9, 12, 12])
#remove elements whose value is equal to 12
new_array = np. delete (original_array, np. where (original_array == 12))
#view new array
print (new_array)
[1 2 2 4 5 7 9]
请注意,等于 12 的两个数组元素已被删除。
示例2:删除列表中等于某个值的元素
以下代码展示了如何从 NumPy 数组中删除所有值等于 2、5 或 12 的元素:
import numpy as np
#define original array of values
original_array = np. array ([1, 2, 2, 4, 5, 7, 9, 12, 12])
#remove elements whose value is equal to 2, 5, or 12
new_array = np. setdiff1d (original_array, [2, 5, 12])
#view new array
print (new_array)
[1 4 7 9]
请注意,任何值为 2、5 或 12 的项目均已被删除。
示例3:根据索引位置删除项目
以下代码显示如何从 NumPy 数组中删除索引位置 0 和 6 处的元素:
import numpy as np
#define original array of values
original_array = np. array ([1, 2, 2, 4, 5, 7, 9, 12, 12])
#remove elements in index positions 0 and 6
new_array = np. delete (original_array, [0, 6])
#view new array
print (new_array)
[2 2 4 5 7 12 12]
请注意,索引位置0 (值为 1)和索引位置6 (值为 9)的元素均已从 NumPy 数组中删除。
其他资源
以下教程解释了如何在 Python 中执行其他常见操作: