Python 如何仅使用numpy查找重复次数超过n次的值?

Python 如何仅使用numpy查找重复次数超过n次的值?,python,numpy,data-science,Python,Numpy,Data Science,我刚接触过numpy和python,所以请温柔一点。 因此,我正在处理一个csv文件popularnames.csv,它有不同的列,我只想加载第3列,标题为“印度流行名称”,并在该列中找到重复超过10次的名称。我也只想使用numpy的目的,并没有找到任何解决方案尚未。我的代码是: Baby_names=np.genfromtxt('popularnames.csv', delimiter=',', usecols=(3), skip_header=1, dtype=str) for Baby_n

我刚接触过numpy和python,所以请温柔一点。 因此,我正在处理一个csv文件popularnames.csv,它有不同的列,我只想加载第3列,标题为“印度流行名称”,并在该列中找到重复超过10次的名称。我也只想使用numpy的目的,并没有找到任何解决方案尚未。我的代码是:

Baby_names=np.genfromtxt('popularnames.csv', delimiter=',', usecols=(3), skip_header=1, dtype=str)
for Baby_names:
    if np.unique(Baby_names)>10:
        print(Baby_names)

我确实理解这个代码是错误的,但这是我所能想到的有限知识。任何帮助都将不胜感激。提前谢谢

for循环的
语法错误

请尝试以下代码:

baby_names = np.genfromtxt('popularnames.csv', delimiter=',', usecols=(3), skip_header=1, dtype=str)

for name, count in zip(*np.unique(baby_names, return_count=True)):
    if count > 10:
        print(name)
return\u count=True
告诉numpy返回每个唯一名称的计数。
zip
将名称绑定到计数,这样我们就可以对这两个值进行迭代


如果您是Python新手,我建议您在使用numpy之前继续学习它。

我为您创建了一个虚拟示例:

from io import StringIO
test = "Baby_names,age,country\nsarah,4,USA\njames,1,UK\nsarah,2,'UK'\n'sarah,3,France\n'john,2,UK\njames,6,Australia"
a = np.genfromtxt(StringIO(test), delimiter=',',usecols=(0), skip_header=1, dtype=str)
print(a)



x:

{"'john": 1, "'sarah": 1, 'james': 2, 'sarah': 2}
for (name, count) in zip(*np.unique(a, return_counts=True)):
    if count >1:
        print(name)



缩短代码:

{"'john": 1, "'sarah": 1, 'james': 2, 'sarah': 2}
for (name, count) in zip(*np.unique(a, return_counts=True)):
    if count >1:
        print(name)

嗨,欢迎来到StackOverflow。你能描述一下你的代码是做什么的吗(例如,它是否会给你一个错误,或者打印出你不期望的东西)?这将帮助其他人找到答案。嗨,非常感谢你的答案!还有一个问题,如果我要找到最高使用的名称,语法会相似吗?如果最高使用的名称是单个名称,那么您可以使用
计数器。最常见的
。否则你可以自己找。由于我们有
x
dict元素包含计数,我们可以找出最大值元素,如果有很多,你也可以得到第一个最大值。
['james', 'sarah']
for (name, count) in zip(*np.unique(a, return_counts=True)):
    if count >1:
        print(name)