如何循环遍历字符串文件并将字符串加载到numpy ndarray中?
答案 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
在空格中的字符串列表。map
将相同的函数应用于列表的每个元素(在本例中为float
),因此map(float, line.split())
会将字符串列表转换为浮点列表。[map(float, line.split()) for line in f]
会创建一个浮动列表列表 - 每行一个列表,其中浮点数已在空格中分割。然后将其发送给知道如何处理列表列表的array()
。另请查看Numpy函数的genfromtxt和loadtxt系列。