我正在尝试阅读名为testfile.txt
的文本文件。
我使用NumPy函数genfromtext
,但我得到Index error: Too many indices
。
文本文件由6列数字组成:
% Notes: 1A
% Mach Number:
% Barometric Pressure: 1036 bar
% Load using MATLAB command: data = load('filename')
% Columns: mm, p/pt, C4, C5, C4raw, C5raw
44.800000 0.781381 804.605260 1029.721933 -0.015945 -0.001723
56.800000 0.681254 699.772376 1027.182448 -0.022291 -0.001977
59.800000 0.627379 643.578986 1025.821491 -0.025692 -0.002113
62.800000 0.572096 586.082966 1024.447808 -0.029170 -0.002250
74.800000 0.440294 449.643875 1021.234840 -0.037422 -0.002571
79.800000 0.384134 391.777963 1019.900507 -0.040921 -0.002705
84.800000 0.336203 342.518031 1018.784082 -0.043898 -0.002816
96.800000 0.270190 274.847768 1017.238791 -0.047987 -0.002971
这是我的代码:
import numpy as np
table = np.genfromtxt("testfile.txt",dtype = "float",delimiter = ",",comments = "%")
mm = table[:,0]
ppt = table[:,1]
C4 = table[:,2]
C5 = table[:,3]
C4raw = table[:,4]
C5raw = table[:,5]
print ppt
答案 0 :(得分:1)
由于genfromtxt
的默认值是使用(可能是多个)空格作为分隔符,因此您只需使用以下内容即可:
table = numpy.genfromtxt('testfile.txt', comments="%")
# etc.
来自docs:
默认情况下,genfromtxt采用
delimiter=None
,表示该行沿着空格(包括制表符)分割,并且连续的空格被视为单个空格。
答案 1 :(得分:1)
您的文件不以逗号分隔。试试这个:
table = np.genfromtxt("test1.txt", dtype="float", comments="%")
使用您提供的示例,这将为我返回正确的值。
答案 2 :(得分:0)
好吧,经过一些试验和错误,我现在解决了这个问题。 感谢您帮助我,省略分隔符确实是heltonbiker建议的最终解决方案。 这是我的代码:
#Read the textfile "testfile.txt" and place all columns in a separate array
table = np.genfromtxt("testfile.txt", comments="%")
mm = table[:,0]
ppt = table[:,1]
C4 = table[:,2]
C5 = table[:,3]
C4raw = table[:,4]
C5raw = table[:,5]