输出带有分数的变量>;在python中选择平均分数

输出带有分数的变量>;在python中选择平均分数,python,arrays,Python,Arrays,如果我有两个数组,每个变量都与其给定分数关联: 第一个数组包含以下内容(变量、分数): F12------->0.769327 F8------>0.932702 F6------->0.980982 F9------->0.998438 F7------->0.999610 F2------>1.000000 F3------->1.000000 F1------>1.000000 F11------->1.000000 F4------>1.000000 F10------->1.0000

如果我有两个数组,每个变量都与其给定分数关联:

  • 第一个数组包含以下内容(变量、分数):
    • F12------->0.769327
    • F8------>0.932702
    • F6------->0.980982
    • F9------->0.998438
    • F7------->0.999610
    • F2------>1.000000
    • F3------->1.000000
    • F1------>1.000000
    • F11------->1.000000
    • F4------>1.000000
    • F10------->1.000000
    • F5------->1.000000
  • 第二个数组如下(变量、分数):
    • F2------->0.179329
    • F3------->0.148576
    • F1------>0.179842
    • F11------->0.217283
    • F4------>0.184893
    • F6------->0.150987
    • F10------->0.267837
    • F9------->0.121113
    • F5------->0.126617
    • F7------->0.112994
    • F12------->0.900000
    • F8------>0.100000
  • 我想把这两个数组合并成一个数组,然后找到与
    • F2、F3、F1、F11、F4、F6、F10、F9、F5、F7、F12、F8
  • 最后,输出选择得分>平均得分的变量。所有代码都用python编写

  • 你可以这样计算平均值:

    mean=np.sum(np.concatenate((arr1[:,1],arr2[:,1]))/12
    
    然后过滤大于平均值的值,如下所示:

    res=arr1[arr1>平均值]
    
    您不能将
    数组
    与您拥有的对象类型一起使用。对象,假设使用NumPy

    出于您的目的,您应该使用
    列表
    ,它们可以是异构的:

    lst1 = [['F12', 0.769327], ['F8', 0.932702], ['F6', 0.980982],
            ['F9', 0.998438], ['F7', 0.999610], ['F2', 1.000000],
            ['F3', 1.000000], ['F1', 1.000000], ['F11', 1.000000],
            ['F4', 1.000000], ['F10', 1.000000], ['F5', 1.000000]]
    
    lst2 = [['F2', 0.179329], ['F3', 0.148576], ['F1', 0.179842],
            ['F11', 0.217283], ['F4', 0.184893], ['F6', 0.150987],
            ['F10', 0.267837], ['F9', 0.121113], ['F5', 0.126617],
            ['F7', 0.112994], ['F12', 0.900000], ['F8', 0.100000]]
    
    要连接两个列表,可以使用运算符
    +

    lst3 = lst1 + lst2
    
    然后,您可以迭代列表以计算平均值,并选择符合您条件的变量:

    lst3_mean = 0
    
    for i in lst3:
        lst3_mean += i[1]
    lst3_mean = lst3_mean / len(lst3)
    
    result = []
    for i in lst3:
        if i[1] > lst3_mean and i[0] not in result:
            result.append(i[0])
    print(result)
    

    请发布您迄今为止的尝试以及遇到的具体问题;请注意,SO不是代码编写服务。另外,这个问题与机器学习或数据库无关-请不要发送不相关的标签(已删除)。非常感谢peter,我确实与您的解决方案非常相似,只是我想比较list1值和1,如果列表1中的值>=输出与此值关联的变量,则我执行以下操作:selected _variable=np.all(np.asarray(列表1)>=1 print(selected _variable)但是它不起作用。对不起,彼得。但是我给出了一个错误的计算平均值。也就是说,lst_平均值应该=0.5737738699887709,但是它给出了0.005737738699887709,请问缺少的解在哪里