0

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

4

1 回答 1

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]制作一个二维字符串列表。中的每一行都fsplit 空格放入字符串列表中。
  • Numpy 的设计目的是处理数值,而不是字符串。所以我们需要将每个字符串子列表变成一个浮点列表。map将相同的函数应用于列表的每个元素(float在本例中),因此map(float, line.split())会将字符串列表转换为浮点列表。
  • 因此,[map(float, line.split()) for line in f]创建一个浮动列表列表 - 每行一个列表,其中浮动已在空格处分开。然后将array()其发送给知道如何处理列表的列表。

还要查看genfromtxtloadtxt系列的 Numpy 函数。

于 2013-03-09T22:01:33.043 回答