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.pymyFunc.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 に答える