【问题标题】:Working with Python Module/Library (Scipy)使用 Python 模块/库 (Scipy)
【发布时间】:2020-05-18 14:33:18
【问题描述】:

我是编程新手,对 Python 包和模块的组织和访问方式有疑问。我试图获得一个计算排列的函数并找到scipy.special.perm。我的第一个直觉是 scipy 是模块,special 是类,perm 是函数。所以我尝试了这个(1):

import scipy
scipy.special.perm(5, 4)

但我得到了错误:

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

这是有效的 (2):

import scipy.special
scipy.special.perm(5,4)
  1. 为什么 (1) 失败了?
  2. 我试图从概念上理解 scipy 是如何构建/组织的。 scipy 是一个包还是一个模块?毕竟错误消息确实将其称为模块,所以我倾向于后者。
  3. 那么 scipy.special 是什么?它是一个模块吗?
  4. “探索”新模块/包(如 scipy)以了解其性质以及需要如何调用它以便我现在使用 (1) 还是 (2) 的推荐方法是什么?

【问题讨论】:

标签: python module scipy package


【解决方案1】:

scipy 里面有很多子包,大部分加载很慢,因为它们是大型 Fortran 扩展。默认情况下,如果您import scipy 它不会加载任何子模块,因此在大多数情况下它是无用的。你总是想导入你需要的子包,例如: import scipy.special 或者更好的是 from scipy.special import permHere 是 scipy 中可用子模块的列表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-21
    • 2023-04-09
    • 2018-01-11
    • 2017-01-22
    • 2017-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多