gpt4 book ai didi

python - 使用 numpy 和后处理导入多个文本文件(大量)

转载 作者:太空宇宙 更新时间:2023-11-03 17:16:33 25 4
gpt4 key购买 nike

这个论坛对于像我这样的Python新手提高知识非常有帮助。我从 CFD 模拟中生成了大量文本格式的原始数据。我的目标是将这些文本文件导入到 python 中并对它们进行一些后处理。这是我目前拥有的代码。

import numpy as np
from matplotlib import pyplot as plt
import os

filename=np.array(['v1-0520.txt','v1-0878.txt','v1-1592.txt','v1-3020.txt','v1-5878.txt'])

for i in filename:
format_name= i
path='E:/Fall2015/Research/CFDSimulations_Fall2015/ddn310/Autoexport/v1'
data= os.path.join(path,format_name)
X,Y,U,V,T,Tr = np.loadtxt(data,usecols=(1,2,3,4,5,6),skiprows=1,unpack = True) # Here X and Y represents the X and Y coordinate,U,V,T,Tr represents the Dependent Variables
plt.figure(1)
plt.plot(T,Y)
plt.legend(['vt1a','vtb','vtc','vtd','vte','vtf'])
plt.grid(b=True)
有没有更好的方法来做到这一点,比如一次将所有文本文件(~10000 个文件)导入到 python 中,然后访问我需要进行后期处理(可能是索引)的任何文件。所有文本文件都将具有相同的列数和行数。

我只是 Python 的初学者。如果有人可以帮助我或为我指明正确的方向,我将不胜感激。

最佳答案

您的帖子需要进行编辑以显示正确的缩进。

根据快速阅读,我认为您是:

reading a file, making a small edit, and write it back
then you load it into a numpy array and plot it

您编辑的目的可能是更正某些 header 或值。

您不需要将文件写回。您可以直接在 loadtxt 中使用 content

content = content.replace("nodenumber","#nodenumber") # Ignoring Node number column
data1=np.loadtxt(content.splitlines())
Y=data1[:,2]
temp=data1[:,5]

loadtxt 接受任何逐行输入的内容。 content.splitlines() 生成一个 loadtxt 可以使用的行列表。

负载可以更紧凑:

Y, temp = np.loadtxt(content.splitlines(), usecols=(2,5), unpack=True)

使用usecols,您甚至可能不需要replace步骤。您尚未向我们提供用于测试的示例文件。

我不明白您的多个文件需求。另一种方法是,您需要一个一个地打开并读取每个文件。最好先关闭一个,然后再继续下一个。 with open(name) as f: 语法非常适合确保文件已关闭。

您可以在更大的列表或数组中收集加载的数据。如果所有文件的 Ytemp 大小相同,则可以将它们收集到更大维度的数组中,例如对于第 i 个文件,YY[i,:] = Y,其中 YY 已预先分配。如果它们的大小可能不同,最好将它们收集在列表中。

关于python - 使用 numpy 和后处理导入多个文本文件(大量),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33615738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com