我不知道導入模塊的正確方法。將Numpy導入函數
我有一個初始化代碼的主文件,做了一些初步計算等。 我也有5個函數f1,f2,... f5。主代碼和所有功能需要Numpy。
如果我在主文件中定義所有函數,代碼運行良好。 (與導入:import numpy as np
)
如果我把功能在一個單獨的文件,我得到一個錯誤:
Error : Global name 'linalg' is not defined.
什麼是導入模塊,使得函數f1的正確方法 - F5可以訪問Numpy功能?
我不知道導入模塊的正確方法。將Numpy導入函數
我有一個初始化代碼的主文件,做了一些初步計算等。 我也有5個函數f1,f2,... f5。主代碼和所有功能需要Numpy。
如果我在主文件中定義所有函數,代碼運行良好。 (與導入:import numpy as np
)
如果我把功能在一個單獨的文件,我得到一個錯誤:
Error : Global name 'linalg' is not defined.
什麼是導入模塊,使得函數f1的正確方法 - F5可以訪問Numpy功能?
正如其他答案所說,您需要將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數組,你會得到一個錯誤。
在每個文件的開頭導入numpy,如果它已經被導入一次,它將不會再導入,但是您將擁有要使用的名稱空間。 – Josiah 2012-08-03 03:42:31