python - 从文件输入 numpy 数组

标签 python file numpy io

我正在从列表中的文件中读取行:

import numpy as np

lines = tuple(open('values.txt','r'))
x = np.array([line for line in lines])

values.txt 看起来像:

[1,0,1,0],
[1,0,0,0]

它抛出一个错误:

valueError: invalid literal for float()

但是,如果我只是将列表分配给 x,它就可以正常工作。

如何从 numpy 数组中的文件获取输入?

最佳答案

lines = open('values.txt', 'r')
x = np.array( [  map(float, (l[l.find("[")+1 : l.find("]")].split(",")))
     for l in lines ] )
print x

简单说明:

这将获取文件中的每一行,找到每一侧的括号,并获取括号内的字符串。然后,我们使用逗号作为分隔符将该字符串拆分为一个数组。然后,我们有一个字符串数组,因此我们将 float 函数映射到每个元素,将其转换为 float 。然后我们使用标准列表理解对每一行执行此操作。

关于python - 从文件输入 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35074426/

相关文章:

python - 使用 SQLALCHEMY 设置 Oracle VARCHAR2 长度 i 字节

python - 在文件中写入嵌入列表

python - 如何有效地定义可变大小的 numpy 数组?

python - Django 过滤器查询 - 不起作用

python - 解析内部为空元素的元素的文本

python - 如何在 Keras 中的自定义损失函数中计算 True Positive

python - 将多个 pandas 数据帧中的所有列连接到一个包含数据和列名称的数据帧中

python - 读取文本文件的行并获取字符映射解码错误

python - 以模块化方式为文件解析器函数编写测试

python - 从 Numpy Ndarray 构建字典和列表