从另一个模块访问numpy数组(与python数组相比)
我试图将一些python数组转换为numpy数组,但在访问另一个模块中的假定全局np数组时遇到问题 模块1(导入数据): 模块2(使用数据):从另一个模块访问numpy数组(与python数组相比),python,arrays,numpy,global-variables,local-variables,Python,Arrays,Numpy,Global Variables,Local Variables,我试图将一些python数组转换为numpy数组,但在访问另一个模块中的假定全局np数组时遇到问题 模块1(导入数据): 模块2(使用数据): 但是,当我执行main方法时,控制台显示一个空数组,而在模块1中调用该数组时,该数组包含数据。如果使用python数组而不是numpy数组,则不会出现问题 可以找到问题的答案和解释 特别是对于我的问题,我应该通过声明import import\u data而不是from import\u data import*导入模块1,然后使用import\u da
但是,当我执行main方法时,控制台显示一个空数组,而在模块1中调用该数组时,该数组包含数据。如果使用python数组而不是numpy数组,则不会出现问题 可以找到问题的答案和解释
特别是对于我的问题,我应该通过声明
import import\u data
而不是from import\u data import*
导入模块1,然后使用import\u data.jobs\u db
访问变量。为什么在这里使用全局变量?只需从functionAnyway返回它,这是因为您使用的是带星号的导入,它本质上相当于import\u数据;jobs_db=导入数据。jobs_db
,但现在jobs_db
与导入数据无关。jobs_db
,只是它们碰巧引用了同一个对象,但可以单独引用其他对象。使用该模块,以便导入数据。jobs\u db,或者更好的是,根本不使用全局变量,但它为什么与python数组而不是numpy数组一起工作?你是什么意思?它的工作原理完全相同。你自己试试,让你的函数只做jobs\u db=['foo','bar']
import numpy as np
jobs_db = []
def read_all_data(date, filepath):
global jobs_db
jobs_db = np.loadtxt(filepath+'jobs_input.csv', dtype=np.uint8, delimiter=",", skiprows=1)
from Import_data import *
if __name__ == '__main__':
read_all_data(180901, 'C:/Users/*********/')
print(jobs_db)