小编Rob*_*isi的帖子

在Python中对单个数组进行更快的双迭代

我想找到一种方法来更快地计算成对准确性,即将比较同一数组中的元素(在这种情况下,这是一个熊猫df列),计算它们之间的差异,然后比较所获得的两个结果。我想有一个数据帧DF有3列(ID文件的,Jugment代表人类的评估,它是一个int对象,PR_score表示该文件的网页级别,这是一个浮动对象),我要检查,如果他们同意对一个文档进行更好/最差的分类。


例如:

id:id1,id2,id3

判断1,0,0

PR_分数0.18,0.5,0.12

在这种情况下,两个分数在对id1的分类上优于对id3的分类,对id1和id2的分类不同,并且在id2和id3之间存在人为的判断力,因此我的成对准确性是:

协议 = 1

分歧 = 1

成对准确性 =同意/(同意+反对)= 1/2 = 0.5


这是我第一个解决方案的代码,其中我将df的列用作数组(这有助于减少计算时间):

def pairwise(agree, disagree):
    return(agree/(agree+disagree))

def pairwise_computing_array(df):

    humanScores = np.array(df['Judgement'])  
    pagerankScores =  np.array(df['PR_Score']) 

    total = 0 
    agree = 0
    disagree = 0

    for i in range(len(df)-1):  
        for j in range(i+1, len(df)):
            total += 1
            human = humanScores[i] -  humanScores[j] #difference human judg
            if human != 0:
                pr = pagerankScores[i] - …
Run Code Online (Sandbox Code Playgroud)

python performance numpy python-3.x pandas

7
推荐指数
1
解决办法
199
查看次数

标签 统计

numpy ×1

pandas ×1

performance ×1

python ×1

python-3.x ×1