我最近一直在尝试我的手在numpy,我试图找到一个解决方案删除元素矩阵内部atcolumn 2等于存储在变量元素中的值.由于我有大量的数据,我需要知道是否有一个更有效的方法这使得执行的时间更少比经典为。我附上一个例子:
element = [ 85., 222., 166., 238.]
matrix = [[228., 1., 222.],
[140., 0., 85.],
[140., 0., 104.],
[230., 0., 217.],
[115., 1., 250.],
[12., 1., 166.],
[181., 1., 238.]]
输出:
matrix = [[140., 0., 104.],
[230., 0., 217.],
[115., 1., 250.]]
我使用的方法如下:
for y in element:
matrix = matrix[(matrix[:,2]!= y)]
运行时数据量大,耗时长。有没有更有效的方法,可以节省执行时间?
既然你标记了numpy
,我假设matrix
是一个numpy数组。有了它,您可以使用np.isin
为您的目的:
matrix = np.array(matrix)
matrix[~np.isin(np.array(matrix)[:,2], element)]
输出:
array([[140., 0., 104.],
[230., 0., 217.],
[115., 1., 250.]])