Python numpy read txt错误(loadtxt、GENFORMTXT)

Python numpy read txt错误(loadtxt、GENFORMTXT),python,numpy,genfromtxt,Python,Numpy,Genfromtxt,我想用python阅读下面这样的文本文件 文本文件示例 {# "Column 4-5 Quantity": "Re/Im Pressure" # "Column 4-5 Units": "" # "Number Rows": 3584879 #} 4.0740740741e-002 -5.0370370370e-002 7.3333333333e-002 9.4443035889e+002 -6.0709484863e+002 4.1481481481e-002

我想用python阅读下面这样的文本文件

文本文件示例

{#  "Column 4-5 Quantity": "Re/Im Pressure"
#   "Column 4-5 Units": ""
#   "Number Rows": 3584879
#}
4.0740740741e-002   -5.0370370370e-002  7.3333333333e-002   9.4443035889e+002   -6.0709484863e+002  
4.1481481481e-002   -5.0370370370e-002  7.3333333333e-002   9.0292657471e+002   -6.2604998779e+002  
4.2222222222e-002   -5.0370370370e-002  7.3333333333e-002   8.2029248047e+002   -6.4528021240e+002  
4.2962962963e-002   -5.0370370370e-002  7.3333333333e-002   7.1829382324e+002   -6.5028546143e+002  
4.3703703704e-002   -5.0370370370e-002  7.3333333333e-002   1.#QNAN00000e+000   0.0000000000e+000   
4.4444444444e-002   -5.0370370370e-002  7.3333333333e-002   1.#QNAN00000e+000   0.0000000000e+000   
4.5185185185e-002   -5.0370370370e-002  7.3333333333e-002   1.#QNAN00000e+000   0.0000000000e+000   
4.5925925926e-002   -5.0370370370e-002  7.3333333333e-002   1.#QNAN00000e+000   0.0000000000e+000
-3.2592592593e-002  -4.9629629630e-002  7.3333333333e-002   4.9716027832e+002   -1.2688856201e+003  
-3.1851851852e-002  -4.9629629630e-002  7.3333333333e-002   5.3677227783e+002   -1.4196939697e+003  
-3.1111111111e-002  -4.9629629630e-002  7.3333333333e-002   6.1588317871e+002   -1.5679577637e+003  
-3.0370370370e-002  -4.9629629630e-002  7.3333333333e-002   7.2673925781e+002   -1.7039268799e+003  
-2.9629629630e-002  -4.9629629630e-002  7.3333333333e-002   8.5946520996e+002   -1.7935989990e+003  
-2.8888888889e-002  -4.9629629630e-002  7.3333333333e-002   1.0030370483e+003   -1.7982950439e+003
因此,我使用了numpy的函数loadtxt和genfromtxt

首先,我尝试了loadtxt 代码是

impoty numpy as np

readtxt = np.loadtxt("filename.txt")
impoty numpy as np

readtxt = np.genfromtxt("filename.txt")
我得到了如下的错误信息

Wrong number of columns at line 5
Line #5 (got 5 columns instead of 4)
第二次我尝试了genfromtxt 代码是

impoty numpy as np

readtxt = np.loadtxt("filename.txt")
impoty numpy as np

readtxt = np.genfromtxt("filename.txt")
我得到了如下的错误信息

Wrong number of columns at line 5
Line #5 (got 5 columns instead of 4)
那么,我怎样才能解决这个问题呢? 我认为问题是“1.#QNAN00000e+000”


我想将此值更改为“0”

您可以使用
注释
缺失值
kwds<代码>注释< /代码>我们需要设置为它的默认值<代码> > <代码>,因此解析器不会停止在中间行读取。代码>缺失值
我们设置为
'1.#QNAN0000e+000'
,因此它们被优雅地处理。这些设置为
nan
,但是
nan
之后可以很容易地用零替换(
result[np.isnan(result)]=0
):

>>np.genfromtxt(,注释='%',缺少_值='1.#QNAN0000e+000')
阵列([[4.074707E-02,-5.03703704e-02,7.33333E-02,
9.44430359e+02,-6.07094849e+02],
[4.14814815e-02,-5.03703704e-02,7.33333333e-02,
9.02926575e+02,-6.26049988e+02],
[4.2222E-02,-5.03703704e-02,7.33333333e-02,
8.20292480e+02,-6.45280212e+02],
[4.29629630e-02,-5.03703704e-02,7.33333E-02,
7.18293823e+02,-6.50285461e+02],
[4.37037037e-02,-5.03703704e-02,7.33333333e-02,
nan,0.00000000 E+00],
[4.44E-02,-5.03703704e-02,7.33333333e-02,
nan,0.00000000 E+00],
[4.51851852e-02,-5.03703704e-02,7.33333E-02,
nan,0.00000000 E+00],
[4.59259259e-02,-5.03703704e-02,7.33333333e-02,
nan,0.00000000 E+00],
[-3.25925926e-02,-4.96296296e-02,7.333333E-02,
4.97160278e+02,-1.26888562e+03],
[-3.18519E-02,-4.96296296e-02,7.33333333e-02,
5.36772278e+02,-1.41969397e+03],
[-3.11111111e-02,-4.96296296e-02,7.33333333e-02,
6.15883179e+02,-1.56795776e+03],
[-3.03703704e-02,-4.96296296e-02,7.33333333e-02,
7.26739258e+02,-1.70392688e+03],
[-2.96296296e-02、-4.96296296e-02、7.33333333e-02、,
8.59465210e+02,-1.79359900e+03],
[-2.8888889E-02,-4.96296296e-02,7.33333333e-02,
1.00303705e+03,-1.79829504e+03]]

The#是一个注释标记。因此它忽略了行的其余部分。开头的“{#”是个问题。注释后面有一个数据列。它仍然会出现相同的错误,,我认为是因为注释了文本文件中的行。我编辑了上面的示例文本文件@박태영 如果这些注释都在顶部,您可以使用
skip_header=n
跳过它们,其中n是要忽略的行数。