gpt4 book ai didi

python - 将 3D numpy 数组保存到 .txt 文件

转载 作者:行者123 更新时间:2023-12-02 15:43:58 41 4
gpt4 key购买 nike

我只是问这个问题,因为它两天前在我的台式机上运行,​​但当我尝试在我的笔记本电脑上运行它时,它不起作用。

array = numpy.zeros((3,3,1))
numpy.savetxt("nxx", array, fmt='%s')

这给了我以下错误:

“需要 1D 或 2D 数组,却得到 %dD 数组” % X.ndim)ValueError:需要 1D 或 2D 数组,却得到 3D 数组

最佳答案

the docs说明一下,savetxt只能保存一维和二维数组。

您希望如何保存它? savetxt 保存到 CSV 文件中:列由空格分隔,行由换行符分隔,这在文本编辑器中看起来很漂亮且为 2D。您如何将其扩展到 3D?

如果您想要使用某种特定的格式,可能会有一个格式化程序(或者可能只是将数组 reshape 为二维的问题?),但你必须解释你想要什么。

如果您不关心在文本编辑器中编辑输出,为什么不将其保存为二进制格式,例如 numpy.save("nxx.npy", array)?它可以很好地处理任何形状。

<小时/>

IIRC,旧版本的 NumPy 通过将除一个维度之外的所有维度压平为单个维度来处理此问题。因此,要使用您的数据,您必须加载它,然后 reshape 它——只有当您从其他地方知道原始维度是什么时,您才能做到这一点。您甚至不会意识到这个问题,直到您花了整整一周生成了几 TB 的文件,而您现在却不知道如何使用这些文件。 (我猜这就是他们改变这种行为的原因——这种行为更多是出于偶然而不是故意,并且带来了恼人的后果。)

无论如何,如果您想要这种行为,您自己将数组 reshape 为 2D 并然后保存当然是微不足道的:

np.savetxt("nxx", array.reshape((3,-1)), fmt="%s")

或者,甚至更好:

np.savetxt("nxx", array.reshape((3,-1)), fmt="%s", header=str(array.shape))

关于python - 将 3D numpy 数组保存到 .txt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51218937/

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