我对Iris数据集Iris data-set进行了t检验。我计算了萼片和花瓣的长宽比,并创建了一个名为IrisLeafRatio.csv. 在
import scipy.stats as stats
# First, we'll import pandas, a data processing and CSV file I/O library
import pandas as pd
# We'll also import seaborn, a Python graphing library
import warnings # current version of seaborn generates a bunch of warnings that we'll ignore
warnings.filterwarnings("ignore")
import seaborn as sns
import matplotlib.pyplot as plt
import numpy
sns.set(style="dark", color_codes=True)
iris_ratio = pd.read_csv("IrisLeafRatio.csv") # the iris dataset is now a Pandas DataFrame
iris_setosa_sepal_ratio = numpy.asarray(iris_ratio["SepalRatio"][0:50])
iris_versicolor_sepal_ratio = numpy.asarray(iris_ratio["SepalRatio"][50:100])
iris_virginica_sepal_ratio = numpy.asarray(iris_ratio["SepalRatio"][100:150])
setosa_versicolor_sepal = stats.ttest_ind(iris_setosa_sepal_ratio, iris_versicolor_sepal_ratio)
setosa_virginica_sepal = stats.ttest_ind(iris_setosa_sepal_ratio, iris_virginica_sepal_ratio)
versicolor_virginica_sepal = stats.ttest_ind(iris_versicolor_sepal_ratio, iris_virginica_sepal_ratio)
print ("______kelkbladeren________")
print ("Setosa : Versicolor")
print (setosa_versicolor_sepal)
print ("Setosa : Virginica")
print (setosa_virginica_sepal)
print ("Versicolor : Virginica")
print (versicolor_virginica_sepal)
iris_setosa_petal_ratio = numpy.asarray(iris_ratio["PetalRatio"][0:50])
iris_versicolor_petal_ratio = numpy.asarray(iris_ratio["PetalRatio"][50:100])
iris_virginica_petal_ratio = numpy.asarray(iris_ratio["PetalRatio"][100:150])
setosa_versicolor_petal = stats.ttest_ind(iris_setosa_petal_ratio, iris_versicolor_petal_ratio)
setosa_virginica_petal = stats.ttest_ind(iris_setosa_petal_ratio, iris_virginica_petal_ratio)
versicolor_virginica_petal = stats.ttest_ind(iris_versicolor_petal_ratio, iris_virginica_petal_ratio)
print ("\n_____bloembladeren_________")
print ("Setosa : Versicolor")
print (setosa_versicolor_petal) + "Setosa : Versicolor"
print ("Setosa : Virginica")
print (setosa_virginica_petal)
print ("Versicolor : Virginica")
print (versicolor_virginica_petal)
# Returns:
# statistic : float or array
# The calculated t-statistic.
# pvalue : float or array
# The two-tailed p-value.
问题是当我想打印stats.ttest_ind统计()函数与字符串一起收到以下错误:
^{pr2}$看起来像那样stats.ttest_ind统计()返回一个NoneType对象,但是如果不尝试用字符串连接,为什么我可以打印它? 其次,因为它是一个非类型,所以我无法将p值提取到一个单独的变量中。在
我制作的完整数据集是:
^{3}$在不连接任何内容的情况下,我的输出是:
______kelkbladeren________
Setosa : Versicolor
Ttest_indResult(statistic=-18.800548677777353, pvalue=2.8240078085535015e-34)
Setosa : Virginica
Ttest_indResult(statistic=-19.473337102574838, pvalue=1.8505071407928178e-35)
Versicolor : Virginica
Ttest_indResult(statistic=-1.4692886838299219, pvalue=0.14495744237234628)
_____bloembladeren_________
Setosa : Versicolor
Ttest_indResult(statistic=8.6379129492322715, pvalue=1.0844901752453786e-13)
Setosa : Virginica
Ttest_indResult(statistic=9.6474890569153793, pvalue=7.0491944878035697e-16)
Versicolor : Virginica
Ttest_indResult(statistic=6.3788055904508321, pvalue=5.910030892093215e-09)
错误发生在行中:
print (setosa_versicolor_petal) + "Setosa : Versicolor"
我找到了解决办法
当我以这种方式分配变量时:
Z值和p值以字符串的形式分配给变量,可以在我的代码中使用。在
当您尝试打印两个不同数据类型的对象时,会发生此错误。 要修复它,可以使用
format
,例如:请参阅How to get Python to gracefully format None and non-existing fields,了解如何用字符串代替None。在
或者您可以使用
^{pr2}$!r
这将把None打印为“None”。在
不确定
scipy.stats.ttest_ind
的输出,但可以尝试打印这些值相关问题 更多 >
编程相关推荐