无法从文本文件正确导入numpy数组

时间:2018-06-21 13:24:18

标签: python-2.7 numpy file-handling

我想将字符串数据类型转换为二维的numpy数组。

我正在从包含以下内容的目录中导入.txt文件:

[[18,1,2018,12,15],
[07,1,2018,12,15],
[03,1,2018,12,15]]

,代码为:

import numpy as np

f = open("/home/pi/timer_database.txt","r")
read = f.read()


x = np.array(list(read))
print(x.size)
print(type(x))
print(x.ndim) 

输出为:

47
type <numpy.ndarray>
1

请帮助我解决这个问题。

2 个答案:

答案 0 :(得分:0)

使用此代码

import numpy as np
f = open("/home/pi/timer_database.txt","r")
read = f.read()
read = read.replace("[" , "")
read = read.replace("]" , "")
read = read.replace(",\n" , "\n")
f= open("New_Array.txt","w+")
f.write(read)
f.close()
Array = np.loadtxt("New_Array.txt" , delimiter=',')
print(Array)

答案 1 :(得分:0)

您可以使用ast来评估您的字符串,这比解析整个字符串要容易得多:

import ast
x=np.array(ast.literal_eval(read))

或者只是eval

x=np.array(eval(read))

但是由于您拥有前导零,这将引发错误,因此首先只需将其删除:

import re
read=re.sub(r'\b0','',read)

另外,如果您正在编写文件,则最好使用其他方法,首先我建议仅使用pickle