我有一个循环,每次都给出新的值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)
之前