如何从numpy数组中删除某些特定元素?说我有import numpy as npa = np.array([1,2,3,4,5,6,7,8,9])然后我想删除3,4,7的a。我所知道的只是值的索引(index=[2,3,6])。
3 回答

隔江千里
TA贡献1906条经验 获得超10个赞
使用numpy.delete() -返回一个新的数组,该数组具有沿删除的轴的子数组
numpy.delete(a, index)
对于您的特定问题:
import numpy as np
a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
index = [2, 3, 6]
new_a = np.delete(a, index)
print(new_a) #Prints `[1, 2, 5, 6, 8, 9]`
请注意,numpy.delete()由于数组标量是不变的,因此返回一个新数组,类似于Python中的字符串,因此每次对其进行更改时,都会创建一个新对象。即,引用delete() 文档:
“ 删除了obj指定的元素的arr 副本。请注意,删除不会就地发生 ...”
如果我发布的代码已输出,则是运行代码的结果。

汪汪一只猫
TA贡献1898条经验 获得超8个赞
有一个内置的numpy函数可以帮助您。
import numpy as np
>>> a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> b = np.array([3,4,7])
>>> c = np.setdiff1d(a,b)
>>> c
array([1, 2, 5, 6, 8, 9])
添加回答
举报
0/150
提交
取消