我有三个长度相同的列表,另一个列表存储了需要从所有三个列表中删除的元素的索引。这是我的意思的一个例子:
a = [3,4,5,12,6,8,78,5,6]
b = [6,4,1,2,8,784,43,6,2]
c = [8,4,32,6,1,7,2,9,23]
(都有len()=9
)
另一个列表包含我需要从所有三个列表中删除的那些元素的索引:
d = [8,5,3]
(请注意,它已经排序)
我知道我可以同时从三个列表中删除一个元素:
for indx in d:
del a[indx]
del b[indx]
del c[indx]
我怎么能在一行中做到这一点?
也许numpy
对这样的事情很有用,如果您的三个列表是二维的,则numpy.array
删除指定的列将非常容易。
a = [3,4,5,12,6,8,78,5,6]
b = [6,4,1,2,8,784,43,6,2]
c = [8,4,32,6,1,7,2,9,23]
big_array = np.array([a,b,c])
d = [8,5,3]
结果:
>>> big_array
array([[ 3, 4, 5, 12, 6, 8, 78, 5, 6],
[ 6, 4, 1, 2, 8, 784, 43, 6, 2],
[ 8, 4, 32, 6, 1, 7, 2, 9, 23]])
>>> np.delete(big_array, d, axis=1)
array([[ 3, 4, 5, 6, 78, 5],
[ 6, 4, 1, 8, 43, 6],
[ 8, 4, 32, 1, 2, 9]])
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句