4

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

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

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

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

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

4

2 回答 2

5

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

于 2012-08-03T04:17:14.120 回答
1

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

于 2012-08-03T03:42:22.633 回答