python中列文本文件的2D数组

2024-05-14 00:58:03 发布

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

我是python新手,正在编写一个从文本文件创建2D数组的脚本。该文件有4列,如下所示:

P    F    T    S
0    0    0    0.227321
0    0    1    0.0380602
0    0    2    -0.804958
0    0    3    0.271401

其中p、F、T和S分别是极化状态、频率、时间和信号强度。我想创建一个二维的S矩阵,这样它们就有相应的T和F值的x和y坐标(忽略P)。我知道如何从文本创建一个矩阵,但这只是创建一个4乘n的矩阵,它在形式上与文本文件相同。如何生成我需要的二维矩阵?在

编辑:我是说忽略p,而不是S


Tags: 文件文本脚本编辑状态时间矩阵数组
3条回答

假设您的文本文件名为data.txt

import numpy as np
dat = np.loadtxt( 'data.txt' )

现在dat[0,:]将是第一行,dat[:,2]将是第三列,依此类推。请注意,您必须在文件的第一行#中添加一个注释字符,这样它就不会被loadtxt读入。在

^{pr2}$

现在,d将在FT列和其他列0指定的位置具有{}的值。在

这个样品怎么样:

with open("matrix.txt", "r") as df:
    txt = df.read()
    items = txt.split()
    items = [float(n) for n in items]
    data = zip([i for i in items[1::4]], [i for i in items[2::4]], [i for i in items[3::4]])
    print(data)
    print(data[1][2])

输出:

[(0.0,0.0),(0.0,1.0),(0.0,2.0),(0.0,3.0)]

1.0款

“data”现在包括xy坐标和值。你应该拥有你所需要的一切

  1. 读入文件,然后如你所说将所有数据保存到一个4乘n的矩阵中。在
  2. 然后遍历每一行并将适当的S或P值保存为array[F][T]=S

相关问题 更多 >