gpt4 book ai didi

python - 从文本文件创建 numpy 数组的最快方法

转载 作者:太空宇宙 更新时间:2023-11-04 05:46:20 26 4
gpt4 key购买 nike

我有 60mb 的文件,其中有很多行。

每一行的格式如下:

(x,y)

每一行都将被解析为形状为 (1,2) 的 numpy 向量。

最后应该在 shpae (N,2) 处连接成一个大的 numpy 数组其中 N 是行数。

最快的方法是什么?因为现在需要太多时间(超过 30 分钟)。

我的代码:

with open(fname) as f:
for line in f:
point = parse_vector_string_to_array(line)
if points is None:
points = point
else:
points = np.vstack((points, point))

解析器在哪里:

def parse_vector_string_to_array(string):
x, y =eval(string)
array = np.array([[x, y]])
return array

最佳答案

可以提高速度的一件事是模仿 genfromtxt 并在列表(或元组)的列表中累积每一行。然后在最后做一个np.array

例如(大致):

points = []
for line in file:
x,y = eval(line)
points.append((x,y))
result = np.array(points)

因为您的文件行看起来像元组,所以我将保留您的 eval 解析。我们通常不推荐 eval,但在这种有限的情况下,它可能是最简单的。

您可以尝试让 genfromtxt 读取此内容,但每行的 () 会让人有些头疼。

pandas 应该有一个更快的 csv 阅读器,但我不知道它是否可以配置为处理这种格式或现在。

关于python - 从文本文件创建 numpy 数组的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32126758/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com