scipy.stats 转换器正常 z 分数到 p 值 Python3

Posted

技术标签:

【中文标题】scipy.stats 转换器正常 z 分数到 p 值 Python3【英文标题】:scipy.stats converter normal z scores to p value Python3 【发布时间】:2019-08-02 10:03:33 【问题描述】:

用这个小转换器有点挣扎,我无法让它通过第一个输入,这是反复要求的。有没有更优雅的方法来解决让我脱离循环的 ValueError 问题?

编辑:我还玩弄了 a=1 和 a=0 的位置,当我这样做时,它不再要求我输入,但它只是运行脚本而不要求我提供第二个用户输入。

谢谢各位!

import scipy.stats as st
a=1
while a==1:
    try:
        choice = input('Press 1 for percentages to Z-Score, 2 for Z-score into percentages, one tailed')
        if choice ==1:
            percentage = input('Enter value')
            print(st.norm.ppf(percentage))
            a=0
        if choice ==2:
            score = input('Enter value')
            print(st.norm.cdf(score))
            a=0
    except ValueError:
        print('Invalid Entry')
        a=1

【问题讨论】:

【参考方案1】:

想了想代码怎么错了,忘了查基础:

在处理之前转换您的输入!!!

我刚刚将两个输入都转换为浮点数,现在它就像一个魅力,包括在输入无效时要求新输入。

import scipy.stats as st
a=1
while a==1:
    try:
        float(choice = input('Press 1 for percentages to Z-Score, 2 for Z-score into percentages, one tailed'))
        if choice ==1:
            percentage = float(input('Enter value'))
            print(st.norm.ppf(percentage))
            a=0
        if choice ==2:
            score = float(input('Enter value'))
            print(st.norm.cdf(score))
            a=0
    except ValueError:
        print('Invalid Entry')
        a=1

【讨论】:

以上是关于scipy.stats 转换器正常 z 分数到 p 值 Python3的主要内容,如果未能解决你的问题,请参考以下文章

scipy.stats.anderson 测试临界值

将 Z 分数(Z 值,标准分数)转换为 Python 中正态分布的 p 值

调用 scipy.stats.multivariate_normal 后,pylab.plot“无法将浮点 NaN 转换为整数”

DataScience之boxcox:scipy.stats.boxcox函数的简介案例应用(将非正态分布数据转换为正态分布数据)之详细攻略

使用 scipy.stats 将 Weibull 分布拟合到数据是不是表现不佳?

关于协方差最小化 scipy.stats.multivariate_normal.logpdf