如何将数组从.txt文件导入到numpy数组?

时间:2018-03-02 20:46:18

标签: python arrays numpy import genfromtxt

道歉,如果这是超级菜鸟,但我已经尝试搜索整个StackOverflow,并且无法找到如何将数据从文本文件导入到numpy数组中,当有" ["或者" [[" chars已经出现了。

上下文:我将系统日志输出保存到文本文件中,我尝试使用np.genfromtxt()和np.loadtxt()。此外,这些数组实际上是高度结构化的(它们总是10列,但我生成的文本文件将一行10列拆分为一行,比如6行,另外4行。我想知道是否已经存在一种内置的方式来读取这些数据而无需声明"开始新行"在" ["和结束行"]"。

[[  2.16089589e-07  -2.41978796e-07   5.81936831e-07   2.67195929e-07
1.41540781e-07  -2.39142167e-07   2.11576619e-07   2.70369611e-07
3.11488321e-07   1.41789783e-07]

[-3.81266403e-07 -2.30981200e-07 -7.07703123e-08 -9.66262661e-08    -3.73168461e-07 -2.65608435e-07 -2.38021940e-07 3.23960222e-07    -1.73911175e-07 -4.02730223e-07]]

1 个答案:

答案 0 :(得分:1)

from numpy import array   

with open("your_file.txt", "r") as myFile: ## Open (and close) your file

    arr = ""
    for line in myFile:
        arr += line.replace("\n", "") ## Replace each newline character in each line so that arr is just one long continuous string
    arr = " ".join(arr.split()) ## Replace multiple whitespace with single spaces
    arr = arr.replace(" ", ",") ## Replace the spaces with commas (so that it can be interpreted as a list
    arr = eval(arr) ## The text will now be stored as a list
    arr = array( arr ) ## Now it's a numpy array (hopefully)