将Numpy导入函数

时间:2012-08-03 03:40:49

标签: python numpy python-import

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

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

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

如果我将这些功能放在一个单独的文件中,我会收到一个错误:
Error : Global name 'linalg' is not defined.

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

2 个答案:

答案 0 :(得分:4)

正如其他答案所说,你需要将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数组,你将收到一个错误。

答案 1 :(得分:1)

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