如何从矩阵numpy中删除多个值,计算成本低



我最近一直在尝试我的手在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.]])

相关内容

  • 没有找到相关文章

最新更新