当空或单行时,Python读取numpy数组中的文本文件

标签 python numpy

我正在使用以下代码读取文本文件:

import numpy as np
my_data = np.genfromtxt(resultsDirectory+'/Points.txt', delimiter=' ')
PointX = my_data[:,5]
PointY = my_data[:,11]

我的输入文件通常是这样的 -

ParamA : 0 ParamB : 7 ParamC : 0 ParamD : 1 Result : FAIL Time : 0 Epsilon : 0.5
ParamA : 0 ParamB : 11 ParamC : 0 ParamD : 1 Result : FAIL Time : 2 Epsilon : 0.5
ParamA : 0 ParamB : 7 ParamC : 0 ParamD : 3 Result : FAIL Time : 2 Epsilon : 0.25
ParamA : 0 ParamB : 13 ParamC : 0 ParamD : 1 Result : FAIL Time : 7 Epsilon : 0.25
ParamA : 0 ParamB : 7 ParamC : 0 ParamD : 4 Result : FAIL Time : 8 Epsilon : 0.125
ParamA : 0 ParamB : 8 ParamC : 0 ParamD : 2 Result : FAIL Time : 1 Epsilon : 0.125
ParamA : 0 ParamB : 8 ParamC : 0 ParamD : 3 Result : FAIL Time : 3 Epsilon : 0.125
ParamA : 0 ParamB : 8 ParamC : 0 ParamD : 4 Result : FAIL Time : 6 Epsilon : 0.125
ParamA : 0 ParamB : 9 ParamC : 0 ParamD : 2 Result : FAIL Time : 6 Epsilon : 0.125
ParamA : 0 ParamB : 10 ParamC : 0 ParamD : 2 Result : FAIL Time : 5 Epsilon : 0.125
ParamA : 0 ParamB : 14 ParamC : 0 ParamD : 1 Result : FAIL Time : 6 Epsilon : 0.125

当我从中提取 PointX 时,我得到

PointX = [7 11 7 13 7 8 8 8 9 10 14]
PointY = [1 1 3 1 4 2 3 4 2 2 1]

现在,有时我的文本文件只包含一行,甚至是空的。

例如,如果文本文件只有一行,则 my_data 数组是这样的 -

[  nan   nan   0.    nan   nan   7.    nan   nan   0.    nan   nan   1.
   nan   nan   nan   nan   nan  0.    nan   nan   0.5]

在本例中,my_data.shape 返回 (21,)

但是,读取数组 PointXPointY 会给我一个错误:IndexError:无效索引。我想要 PointX=[7]PointY=[1]。或者,如果文本文件为空,则应为 PointX=[]PointY=[]

我到底应该如何解决这个问题?另外,我需要我的 PointXPointY 是一个数组,以免破坏依赖它的代码。

谢谢。

最佳答案

不幸的是,如果给定的文件只有一行,则 genfromtxt 返回一个一维数组,如果给定多于一行,则返回一个二维数组。您可以通过 reshape 来处理差异:

import numpy as np
my_data = np.genfromtxt('data', delimiter=' ')
if my_data.ndim == 1:
    my_data = my_data.reshape(1, -1)
PointX = my_data[:,5]
PointY = my_data[:,11]
print(PointX)
print(PointY)

产量

[ 7.]
[ 1.]

关于当空或单行时,Python读取numpy数组中的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12843610/

相关文章:

arrays - Python 增加数组的一部分

python - 在 Pyramid 中,如何防止在某些响应中设置 cookie?

python - 基于自定义函数的Django过滤器

python - 从文本文件中删除空行、点和逗号

python - Keras:predict_generator 的输出是什么?

python - 使用numpy构建两个数组的所有组合的数组

python - Python 单元测试自动生成数据

python - 如何在Python中的for循环中创建多个迭代器和条件?

python - 在 Python unicode 字符串中删除重音符号(规范化)的最佳方法是什么?

python - 如何使用多处理来加速以下功能?