如何遍历字符串文件并将字符串加载到numpy ndarray中

时间:2013-03-09 21:58:23

标签: python numpy

如何循环遍历字符串文件并将字符串加载到numpy ndarray中?

1 个答案:

答案 0 :(得分:2)

这将创建一个字符串的numpy向量,每个单元格有一行:

import numpy as np

with open("file.ext") as f:
    a = np.array(f.readlines())

这可以修改为,例如,浮点空格分隔值的文件:

import numpy as np

with open("file.ext") as f:
    a = np.array([map(float, line.split()) for line in f])

让我们打破array()的论点来澄清这里发生了什么。

  • [line for line in f]等同于f.readlines() - 它 创建一个字符串列表,f中每行一个。
  • [line.split() for line in f]生成字符串的2D列表。 f中的每一行获得split 在空格中的字符串列表。
  • Numpy旨在处理数值,但不是字符串。所以我们需要将每个字符串子列表转换为浮点数列表。 map将相同的函数应用于列表的每个元素(在本例中为float),因此map(float, line.split())会将字符串列表转换为浮点列表。
  • 因此[map(float, line.split()) for line in f]会创建一个浮动列表列表 - 每行一个列表,其中浮点数已在空格中分割。然后将其发送给知道如何处理列表列表的array()

另请查看Numpy函数的genfromtxtloadtxt系列。