我有一个代码,我想将其放入 for 循环中。我想将一些存储为文件的数据输入到我的代码中,并根据每个输入自动生成输出。目前,我的代码仅适用于一个输入文件,因此给出一个输出。我的输入文件名为model000.msh,但事实是我有一系列这些输入文件model000.msh,其名称model001.msh为 、 等。在代码中,我对导入的文件进行一些计算,最后将其与my_data另一个具有ID一列和数千行的 numpy 数组 () 生成的 numpy 数组 () 进行比较。IDarray 是我要迭代的第二个变量。ID正在my_data通过一个np.concatenate函数进行。我想用 的每一列ID来制作my_data( my_data=np.concatenate((ID[:,iterator], gr), axis =1))。因此,我想迭代多个文件,然后从每个文件中提取数组(extracted),然后按照循环my_data从 的每一列生成ID并进行计算my_data,extracted最后使用动态命名方法导出每次迭代的结果(changed_000,changed_001等等在)。这是我的一个单一输入和一个单一my_data数组的代码(由ID只有一列的数组组成),但我想更改对多个输入文件和多个my_data数组以及最后几个输出的迭代:
from itertools import islice
with open('model000.msh') as lines:
nodes = np.genfromtxt(islice(lines, 0, 1000))
with open('model000.msh', "r") as f:
saved_lines = np.array([line.split() for line in f if len(line.split()) == 9])
saved_lines[saved_lines == ''] = 0.0
elem = saved_lines.astype(np.int)
# following lines extract some data from my file
extracted=np.c_[elem[:,:-4], nodes[elem[:,-4]-1, 1:], nodes[elem[:,-3]-1, 1:],nodes[elem[:,-2]-1, 1:], nodes[elem[:,-1]-1, 1:]]
…
extracted =np.concatenate((extracted, avs), axis =1) # each input file ('model000.msh') will make this numpy array
# another data set, stored as a numpy array is compared to the data extracted from the file
ID= np.array [[… ..., …, …]] # now, it is has one column, but it should have several columns and each iteration, one column will make a my_data array
my_data=np.concatenate((ID, gr), axis =1) # I think it should be something like my_data=np.concatenate((ID[:,iterator], gr), axis =1)
from scipy.spatial import distance
distances=distance.cdist(extracted [:,17:20],my_data[:,1:4])
ind_min_dis=np.argmin(distances, axis=1).reshape(-1,1)
我感谢您提前提供的任何帮助。
婷婷同学_
相关分类