【问题标题】:module 'scipy' has no attribute 'norm'模块“scipy”没有属性“规范”
【发布时间】:2020-06-12 14:01:58
【问题描述】:

我是 python 新手,我试图理解为什么我无法绘制图表。首先我导入了我在程序中一直使用的所有库:

import pandas as pd
import statsmodels.formula.api as sm
import numpy as np
import seaborn as sns
import scipy as stats
import matplotlib.pyplot as plt

当我运行以下代码时:

sns.distplot(financials.residual,kde=False,fit=stats.norm)

我收到以下错误:

AttributeError: module 'scipy' has no attribute 'norm'

我相信这可能是因为我没有从辣味中导入正确的模块,但我找不到正确的方法。

感谢您的帮助

【问题讨论】:

    标签: python scipy


    【解决方案1】:

    normscipy.stats 中,而不是在scipy 中。 导入“scipy as stats”只是导入 scipy 并将其重命名为 stats,它不会在 scipy 中导入 stats 子模块。

    from scipy.stats import norm
    

    喜欢official website example

    from scipy import stats
    stats.norm(...)
    

    注意: 当“将某些东西作为其他东西导入”时,请注意不要隐藏其他名称,并尽可能遵循约定(如 import numpy as np)。

    对于 scipy,正如this 回答中所解释的那样,惯例是永远不要“import scipy as ...”,因为 scipy 中所有有趣的功能实际上都位于子模块中,这些子模块不会自动导入。

    【讨论】:

      【解决方案2】:

      不要import scipy as stats。有一个名为stats 的库模块。通过重命名scipy,您可以隐藏原来的stats 模块并防止 Python 从访问它。然后stats.norm 本质上变成了scipy.norm,这不是你想要的。

      【讨论】:

        【解决方案3】:

        首先,让我们看看如何正确使用import:

        1) 导入库: 第一种方法是直接导入库并用'.'访问它下面的模块。这在此处进行了说明:

        import pandas
        import numpy
        pandas.read_csv('helloworld.csv')
        

        pandas 是一个库,read_csv 是其中的一个模块。

        2)直接导入模块 第二种方法是直接导入模块,如下:

        from pandas import read_csv
        read_csv('helloworld.csv')
        

        当您知道您将只使用 pandas 的 read_csv 模块而不是它下面的任何其他模块时,请使用此方法。

        3)导入一个库下的所有模块

        from pandas import *
        

        这将导入pandas库下的所有模块,您可以直接使用它们。

        现在来回答你的问题:

        norm 函数存在于 scipy 的 stats 模块中。当您使用as 时,您为代码中的库/模块提供了一个别名。所以不如试试这个方法

        from scipy.stats import norm
        norm(...)
        

        from scipy import stats
        stats.norm(..)
        

        希望这会有所帮助!

        【讨论】:

          猜你喜欢
          • 2012-11-14
          • 1970-01-01
          • 2019-12-20
          • 1970-01-01
          • 2020-06-04
          • 2021-12-24
          • 2015-05-08
          • 2020-10-17
          • 2020-10-03
          相关资源
          最近更新 更多