gpt4 book ai didi

python - 删除 NumPy 数组中重复的行

转载 作者:太空狗 更新时间:2023-10-29 17:43:35 26 4
gpt4 key购买 nike

我有一个 (N,3) numpy 值数组:

>>> vals = numpy.array([[1,2,3],[4,5,6],[7,8,7],[0,4,5],[2,2,1],[0,0,0],[5,4,3]])
>>> vals
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 7],
[0, 4, 5],
[2, 2, 1],
[0, 0, 0],
[5, 4, 3]])

我想从数组中删除具有重复值的行。例如,上述数组的结果应该是:

>>> duplicates_removed
array([[1, 2, 3],
[4, 5, 6],
[0, 4, 5],
[5, 4, 3]])

我不确定如何在不循环的情况下使用 numpy 高效地执行此操作(数组可能非常大)。有人知道我该怎么做吗?

最佳答案

这是一个选项:

import numpy
vals = numpy.array([[1,2,3],[4,5,6],[7,8,7],[0,4,5],[2,2,1],[0,0,0],[5,4,3]])
a = (vals[:,0] == vals[:,1]) | (vals[:,1] == vals[:,2]) | (vals[:,0] == vals[:,2])
vals = numpy.delete(vals, numpy.where(a), axis=0)

关于python - 删除 NumPy 数组中重复的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7438438/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com