如何遍历字符串文件并将字符串加载到 numpy ndarray 中?
问问题
287 次
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]
制作一个二维字符串列表。中的每一行都f
将split
空格放入字符串列表中。- Numpy 的设计目的是处理数值,而不是字符串。所以我们需要将每个字符串子列表变成一个浮点列表。
map
将相同的函数应用于列表的每个元素(float
在本例中),因此map(float, line.split())
会将字符串列表转换为浮点列表。 - 因此,
[map(float, line.split()) for line in f]
创建一个浮动列表列表 - 每行一个列表,其中浮动已在空格处分开。然后将array()
其发送给知道如何处理列表的列表。
还要查看genfromtxt和loadtxt系列的 Numpy 函数。
于 2013-03-09T22:01:33.043 回答