首页 > 解决方案 > 两个数组(一个表示索引,另一个表示重复次数)。我想根据重复次数删除索引(python)

问题描述

我在一个带有一些数据框的 colab 中工作,我有两个 numpy 数组:

- 第一个表示行的索引。-另一个表示重复次数(在这之前我做了一些方法)。

如果我打印两个数组,我会得到如下信息:

print(uniqueValues, occurCount)

OUTPUT: [   13    33    66 ... 99907 99911 99928] [7 1 6 ... 1 6 4]

我们可以理解为:13重复7次,33重复1次....

现在的问题是:如何根据重复次数从两个数组中删除索引和重复?

示例: if < 5 then remove element 预期输出:[ 13 66 ... 99911] [7 6 ... 6]

标签: pythonarraysnumpy

解决方案


您可以将匹配值occurCount用作过滤器uniqueValuesoccurCount使用布尔索引

uniqueValues = uniqueValues[occurCount >= 5]
occurCount = occurCount[occurCount >= 5]

例如:

import numpy as np

uniqueValues = np.array([13, 33, 66, 99907, 99911, 99928])
occurCount = np.array([7, 1, 6, 1, 6, 4])

uniqueValues = uniqueValues[occurCount >= 5]
occurCount = occurCount[occurCount >= 5]
print(uniqueValues )
print(occurCount)

输出:

[   13    66 99911]
[7 6 6]

推荐阅读