快速换位np.数组然后给fi写信

2024-09-26 22:43:52 发布

您现在位置:Python中文网/ 问答频道 /正文

在什么地方写tdm.txt文件。TDMS文件结构具有由numpy数组格式的通道组成的组。我正试图找出最快的方法来遍历组和频道,并将它们转换为“表”格式。我有一个可行的解决方案,但我认为这并不快。在

我的代码片段(其中文件已打开到tdms变量和groups变量)是该.tdms文件中的组列表。代码循环遍历组,并将该组中的通道列表打开到channels变量。为了得到数字阵列来自频道的数据您使用频道[list index].data。然后我就用column_ntustack逐个将通道添加到“table”格式,并用np.savetxt文件. 有没有更快的方法?在

for i in range(len(groups)):
    output = filepath+"\\"+str(groups[i])+".txt" 
    channels = tdms.group_channels(groups[i]) #list of channels in i group
    data=channels[0].data #np.array for first index in channels list
    for i in range(1,len(channels)):
       data=np.column_stack((data,channels[i].data))       

    np.savetxt(output,data,delimiter="|",newline="\n")  

通道数据为一维阵列。长度=6200

^{pr2}$

Tags: 文件方法代码intxt列表fordata
1条回答
网友
1楼 · 发布于 2024-09-26 22:43:52

我认为您可以通过以下方式简化column_stack应用程序:

np.column_stack([chl.data for chl in channels])

我认为这不会节省时间

你的数据是这样的吗?在

^{pr2}$

savetxt遍历data的行,执行格式化并对每个行进行写入。在

由于输出的每一行都由来自channels的每个数据点组成,我认为您必须像这样组装一个2d数组。你必须迭代channels来做(假设它们是不可矢量化的对象)。在

data的行中循环并编写自己的行似乎没有任何好处。savetxt是相对简单的Python代码。在


对于相同大小的1d数组,这种构造更简单,使用基本的np.array更快:

np.array([[0,1,2],[10,11,12],[20,21,22]]).T

相关问题 更多 >

    热门问题