擅长:python、mysql、java
<p>你有numpy数组,为什么不直接使用它呢?您可以将工作从Python卸载到C编译代码(通常,但不总是):</p>
<p>首先,将向量调整为1xN矩阵:</p>
<pre><code>humanScores = np.array(df['Judgement']).resize((1,-1))
pagerankScores = np.array(judgmentPR['PR_Score']).resize((1,-1))
</code></pre>
<p>然后找出差异,我们只对标志感兴趣:</p>
^{pr2}$
<p>这里我假设数据是整数,因此<code>clip</code>函数将只产生-1、0或1。然后你可以数一数:</p>
<pre><code>agree = ((humanDiff != 0) & (pagerankDiff != 0) & (humanDiff == pagerankDiff)).sum()
disagree = ((humanDiff != 0) & (pagerankDiff != 0) & (humanDiff != pagerankDiff)).sum()
</code></pre>
<p>但是上面的计数是重复计算的,因为项(i,j)和项(j,i)在<code>humanDiff</code>和{<cd3>}中都是完全相反的符号。您可以考虑只取方阵的上三角部分求和:</p>
<pre><code>agree = ((humanDiff != 0) &
(pagerankDiff != 0) &
(np.triu(humanDiff) == np.triu(pagerankDiff))
).sum()
</code></pre>