gpt4 book ai didi

python - 如何减少 numpy 数组中的行重复次数

转载 作者:行者123 更新时间:2023-11-28 17:02:10 25 4
gpt4 key购买 nike

我想清理我的数据以减少重复项的数量。我不想删除所有重复项。

如何获得具有一定数量重复项的 numpy 数组?

假设我有

x = np.array([[1,2,3],[1,2,3],[5,5,5],[1,2,3],[1,2,3]])

我将重复数设置为 2。

输出应该是这样的

x
>>[[1,2,3],[1,2,3],[5,5,5]]

x
>>[[5,5,5],[1,2,3],[1,2,3]]

它不计入我的任务

最佳答案

即使在您已经拥有 numpy 数组时使用列表追加作为中间步骤并不总是一个好主意,但在这种情况下,它是迄今为止最干净的方法:

def n_uniques(arr, max_uniques):
uniq, cnts = np.unique(arr, axis=0, return_counts=True)
arr_list = []
for i in range(cnts.size):
num = cnts[i] if cnts[i] <= max_uniques else max_uniques
arr_list.extend([uniq[i]] * num)
return np.array(arr_list)

x = np.array([[1,2,3],
[1,2,3],
[1,2,3],
[5,5,5],
[1,2,3],
[1,2,3],])

reduced_arr = n_uniques(x, 2)

关于python - 如何减少 numpy 数组中的行重复次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53706903/

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