我有一个循环,每次都给出新值 k1 和 k2,但问题是在我的数据集中,有些情况下 k1 和 k2 的所有值都为零。程序到他们那里,只是抛出一个错误,并没有完成循环,还有大量的计算。我怎样才能让这种情况只被签署,比如 NA 或其他东西,然后循环继续?
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)
之前
关于python - 如何使用循环在 python 中执行 Mann-Whitney U 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52450778/