【问题标题】:Importing Numpy into functions将 Numpy 导入函数
【发布时间】:2012-08-01 02:27:33
【问题描述】:

我不知道导入模块的正确方法。

我有一个初始化代码、进行一些初步计算等的主文件。 我也有 5 个函数 f1, f2, ... f5。主要代码和所有功能都需要 Numpy。

如果我在主文件中定义所有函数,代码运行良好。 (导入:import numpy as np

如果我将函数放在单独的文件中,则会出现错误:
Error : Global name 'linalg' is not defined.

导入模块以使函数 f1 - f5 可以访问 Numpy 功能的正确方法是什么?

【问题讨论】:

  • 在每个文件的开头导入numpy,如果已经导入过一次,就不会再次导入,但是你可以使用命名空间。

标签: python numpy python-import


【解决方案1】:

正如其他答案所说,您需要将 numpy 导入到调用 Numpy 函数的每个文件中。但是,如果您不在主模块中使用它,则不需要将其导入主模块。这是一个简单的例子。想象一下,您有一个文件,其中包含您的函数,名为 myFunc.py myFunc.py:

import numpy as np

def f1(a):  # a is a numpy multidimensional array
    z = np.array(a)
    flat = z.ravel()
    flat = flat.tolist()

    return flat     

然后在你的主文件中你可以做这样的事情

import myFunc as mf

mf.f1([[4,67,8],[7,9,7]])

您的输出将是:

[4, 67, 8, 7, 9, 7]

因此,您将一个列表传递给您的函数,将其转换为函数中的 numpy 数组,然后将答案作为列表返回。如果你返回一个 numpy 数组,你会得到一个错误。

【讨论】:

    【解决方案2】:

    您必须在使用它们的每个文件中导入模块。这能回答你的问题吗?

    【讨论】:

    • 是的。我认为这是重复的,正确的方法是只导入一次。谢谢。
    猜你喜欢
    • 2019-06-30
    • 1970-01-01
    • 1970-01-01
    • 2018-04-25
    • 1970-01-01
    • 2015-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多