4 回答
TA贡献1874条经验 获得超12个赞
为什么你不使用 python 的内置模块,statistics。您可以像这样使用模块:
import statistics
### your input code
mode = statistics.mode(mostFreqenNum)
print(mode)
mode() 接收参数列表类型。然后你可以使用 count()。另一个例子,可能像这样:
>>> import statistics
>>> lists = [2,3,2,2,3,4,5]
>>> mode = statistics.mode(lists)
>>> print(mode)
2
>>> lists.count(2)
3
>>>
TA贡献1995条经验 获得超2个赞
我不确定你到底想做什么,但也许这可行:
mostFreqenNum = {}
contMostnum = 0
myList = [1, 2, 3, 2, 4, 3, 2, 3, 5, 3]
for i in myList:
if i in mostFreqenNum:
mostFreqenNum[i] += 1
else:
mostFreqenNum[i] = 1
for x in mostFreqenNum:
if mostFreqenNum[x] > contMostnum:
contMostnum = mostFreqenNum[x]
mostFreqKey = x
else:
continue
print(f'Most frequent key, {mostFreqKey}, seen {contMostnum} times.')
TA贡献1780条经验 获得超1个赞
def Prediction_Model_v3():
alnv3 = [[],[]]
inpv3 = int(input('How many time You like to Train you input V3: '))
for i in range(inpv3):
pdInpv3 = int(
input('V3 input number whatever you want: '))
alnv3[0].append(pdInpv3)
mdv3 = statistics.mode(alnv3[0])
if(pdInpv3 == mdv3):
alnv3[1].append(str(len(alnv3[1])))
print('numberInput V3: ', alnv3[0])
print('Most Frequent number V3 is ', str(mdv3), ':', str(len(alnv3[1])))
pdtISv3 = (((inpv3-int(len(alnv3[1])))*100)/inpv3)
print('Result of prediction V3 is: ', str(
mdv3), '=', str(pdtISv3), '%')
alnv3.clear()
return str(pdtISv3)
TA贡献1841条经验 获得超3个赞
给定一个值列表inp
,您可以找到最常见的值,如下所示:
使用
collections.Counter
from collections import Counter
most_common = Counter(inp).most_common(1)
输出是一个tuple
里面(value, count)
使用
sorted
sorted(inp, key=lambda x: inp.count(x), reverse=True)[0]
输出是列表中最常见的值
使用
numpy
:# note only works with numeric values
np.argmax(np.bincount(inp))
输出是列表中最常见的值
另一个使用
builtins
:max(set(inp), key=inp.count)
输出是列表中最常见的值
另一个使用
pandas
:import pandas as pd
pd.value_counts(inp).index[0]
输出是列表中最常见的值
添加回答
举报