gpt4 book ai didi

python - 在 python 中构建文本文件的更快方法

转载 作者:太空宇宙 更新时间:2023-11-04 10:01:52 25 4
gpt4 key购买 nike

我有两个 3d numpy 数组,称它们为 a 和 b,512x512x512。我需要将它们写入文本文件:

a1 b1
a2 b2
a3 b3
...

这可以通过三重循环来完成:

lines = []
for x in range(nx):
for y in range(ny):
for z in range(nz):
lines.append('{} {}'.format(a[x][y][z], b[x][y][z])
print('\n'.join(lines))

但这非常慢(10 分钟,而我更喜欢在 mac pro 上几秒钟)。

我正在使用 python 3.6,最新的 numpy,并且很乐意使用其他库,构建扩展,任何必要的。加快速度的最佳方法是什么?

最佳答案

您可以使用 np.stack 并将数组 reshape 为 (-1, 2)(两列)数组,然后使用 np.savetxt:

a = np.arange(8).reshape(2,2,2)
b = np.arange(8, 16).reshape(2,2,2)

np.stack([a, b], axis=-1).reshape(-1, 2)

#array([[ 0, 8],
# [ 1, 9],
# [ 2, 10],
# [ 3, 11],
# [ 4, 12],
# [ 5, 13],
# [ 6, 14],
# [ 7, 15]])

然后您可以将文件另存为:

np.savetxt("*.txt", np.stack([a, b], axis=-1).reshape(-1, 2), fmt="%d")

关于python - 在 python 中构建文本文件的更快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43150107/

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