【发布时间】:2021-02-23 14:34:11
【问题描述】:
我将一些变量堆栈保存到 .dat 文件中。 我有 4 个 numpy 数组构建如下:其中 3 个包含浮点数和一个时间字符串。这是所有 numpy.ndarray 的 type(np.array[n]) 输出:
<type 'numpy.float64'> <type 'numpy.float64'> <type 'numpy.float64'> <type 'numpy.string_'>
最后一个数组是用 datetime 模块构建的:
hr_time.append(datetime.datetime.fromtimestamp(time_unix).strftime("%Y-%m-%d %H:%M:%S.%f"))
然后我使用 zip 和 np.savetxt 如下:
zipped = zip(lat, lon, time_unix, hr_time)
np.savetxt("shadow_orbit.dat", zipped, fmt='%.7f %.7f %.7f %s')
我收到以下错误:
in savetxt
% (str(X.dtype), format))
TypeError: Mismatch between array dtype ('|S32') and format specifier ('%.7f %.7f %.7f %s')
实际上对我来说不是必须这样保存文件,我可以只保存其中三个。事实上,正如您可能从代码中争辩的那样,hr_time 只是一个字符串,以一种更易于阅读的方式显示 time_unix 变量,所以将来我可以设法重新调整它,但为了快速浏览,拥有它真的很有帮助它也在文件中。
谁能帮助我?
提前致谢。
【问题讨论】:
-
查看
zipped,然后再尝试在savetxt中使用它 -
np.savetxt保存一个 numpy 数组,而不是一个zip对象。它将首先尝试将参数转换为数组。您是否尝试过遍历zipped并直接写入每一行(使用该格式)?
标签: python arrays numpy save dtype