你可以使用以下方法从NumPy数组中移除特定元素。
方法1:移除与特定值相等的元素
#remove elements whose value is equal to 12
new_array = np.delete(original_array, np.where(original_array == 12))
方法2:移除与列表中某些值相等的元素
#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中进行其他常见的操作: