gpt4 book ai didi

python - numpy.savetxt 可以用在 N>2 的 N 维 ndarray 上吗?

转载 作者:太空狗 更新时间:2023-10-29 20:23:06 25 4
gpt4 key购买 nike

我正在尝试使用 numpy.savetxt 将 4D numpy float 组输出到纯文本文件

然而,当我尝试传递这个数组时,numpy 给出了一个错误,指出需要一个 float 参数。尽管如此,numpy 文档指定要传递的参数应该只是数组...而不是它应该是最大等级 2。我可以让它工作的唯一方法是将数据 reshape 为 2D(这实际上不是出于数据组织的原因总是实用的)

有办法解决这个问题吗?还是必须将 numpy 数组 reshape 为 2D?我期望能够像逐列样式(通过维度处理)一样以 Fortran 格式读取数据。

还有其他可能吗?请注意,我不想使用 npy 格式,因为我寻求与另一个需要纯文本格式的程序兼容。

最佳答案

如果您查看 numpy.savetxt 的源代码,您会发现

    for row in X:
fh.write(asbytes(format % tuple(row) + newline))

因此 numpy.savetxt 仅适用于一维或二维数组。

为了互操作性,如果您有足够的内存将 numpy 数组转换为列表,则可以使用 JSON:

import json
import numpy as np
a = np.arange(24).reshape(-1, 2, 3, 4).astype('float')
a[0,0,0,0] = np.nan
with open('/tmp/out', 'w') as f:
json.dump(a.tolist(), f, allow_nan = True)

产量

[[[[NaN, 1.0, 2.0, 3.0], [4.0, 5.0, 6.0, 7.0], [8.0, 9.0, 10.0, 11.0]], [[12.0, 13.0, 14.0, 15.0], [16.0, 17.0, 18.0, 19.0], [20.0, 21.0, 22.0, 23.0]]]]

关于python - numpy.savetxt 可以用在 N>2 的 N 维 ndarray 上吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13495777/

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