我是 python 和编程的新手。我曾尝试搜索此内容,但未能找到答案。
我正在寻找将数据文件附加到数组并在多个 python 模块中使用它的最佳方法。作为一个 1 学期的理科学生,我知道在我的教育过程中我会多次使用它,所以我需要一些帮助,以找到更好的方法来做到这一点。
这是我第一学期小组项目的一个例子。我们被要求使用 python 模拟说话者来帮助完成不同的任务。我们得到了 impedans reading 以在数据文件中使用。数据文件有 3 列。频率、实阻抗、虚阻抗。
在第一个文件中,我们将其命名为 import_define.py 。我们有以下代码,从名为 data 的数据文件导入。
infile = open('data.dat', 'r')
infile.readline()
freq_list = []
real_list = []
imag_list = []
for line in infile:
split = line.split()
freq_list.append(float(split[0][:-1]))
real_list.append(float(split[1][:-1]))
imag_list.append(float(split[2]))
infile.close()
import numpy as np
freqenzy = np.asarray(freq_list)
real_imp = np.asarray(real_list)
imag_imp = np.asarray(imag_list)
然后我们在这个模块中使用了三个数组进行不同的计算。
现在我们想在不同的模块 plot.py 中使用这些数组,我们想在其中绘制来自这 3 个数组的一些数据,以及来自 import_define.py 中计算的不同数据
我们所做的是在 import_define.py 中定义 3 个返回数组的函数,如下所示:
def freq_func():
return frequenzy
def real_imp_func():
return real_imp
def imag_imp_func():
return imag_imp
在文件 plot.py 中,我们执行了以下操作以在这个新模块中导入和使用数组:
import import_define as imd
freq = imd.freq_func()
real = imd.real_imp_func()
imag = imd.imag_imp_func()
所以我想问一下,在使用 python 时是否有更好或更正确的方法来做到这一点。
请您参考如下方法:
数组变量在import_define模块中是全局变量,可以直接使用:
import import_define as imd
print imd.frequenzy
我认为您可以使用 numpy.loadtxt 从文件中快速加载数组,而无需 for 循环。
