scipy.stats.scoreatpercentile:每次都需要在运行代码之前运行导入



我在我的一个函数中使用scipy的stats.scoreatpercentile。 但是,每当我运行产生错误的东西时 - 之后会修复 - 我必须运行from scipy import stats,否则我的程序开始告诉我pandas.DataFrame do not have the attribute "scoreatpercentile"。这是某种错误,我"丢失"了导入的模块还是我做错了什么?

正如我们所讨论的,很可能是你把变量stats分配给了另一个变量,而不是你导入的子模块。

这就是为什么使用以下内容被认为是不好的做法:

from x import y
# do something with y

因为它会污染您的命名空间。使用以下内容始终被认为是更好的主意:

import x
# do something with x.y

如果使用y而不是x.y的理由是因为x是一个非常长的名称,人们使用:

import reallylongx as x

为了减轻写额外字母的痛苦(如np而不是numpypd而不是pandasmpl而不是matplotlib(。

看看这个例子

from scipy import stats
import numpy as np
a = np.arange(20)
stats.scoreatpercentile(a, 10)
1.9000000000000001

数组是数字类型。这就解释了为什么你会得到熊猫。数据帧没有属性"scoreatpercentile">

相关内容

最新更新