我有一个循环,每次都给出新的值k1和k2,但是问题是在我的数据集中,在某些情况下,k1和k2的所有值均为零。当程序遇到它们时,它只会引发错误并且无法完成循环,并且仍然存在大量计算。我该如何使此类案件如不适用之类的东西被签署,然后继续进行呢?

python3

import pandas

from scipy.stats import mannwhitneyu

print(mannwhitneyu(k1, k2))


我针对不同的观察结果进行了Mann-Whitney U检验,我希望周期不会因错误而停止,只是要注意,此处不可能

错误示例(上面的第3行是正常的):

MannwhitneyuResult(statistic=3240.0, pvalue=0.16166098643677973)
MannwhitneyuResult(statistic=2958.5, pvalue=0.008850960706454409)
Traceback (most recent call last):
  File "ars1", line 95, in <module>
    print(mannwhitneyu(k1, k2))
  File "/storage/software/python-3.6.0/lib/python3.6/site-packages/scipy/stats/stats.py", line 4883, in mannwhitneyu
    raise ValueError('All numbers are identical in mannwhitneyu')
ValueError: All numbers are identical in mannwhitneyu

最佳答案

如果2个数组相等,则可以继续循环。例如,如果:

k1 = [0,0,0,0,0];
k2 = [0,0,0,0,0];


然后可以检查是否k1 == k2。如果为真,则对循环使用continue。像这样:

if ( k1 == k2 ) == True: continue


在您致电mannwhitneyu(k1, k2)之前

07-24 19:34