【发布时间】:2022-01-18 22:37:41
【问题描述】:
尝试将两个 numpy 数组值保存到 csv,但出现错误。
profit_value = cumulative_profits[-1] - cumulative_profits[insample] # For this example, consider profit_value = 0.15093565 profit_value is of type <class 'numpy.float32'>
date_value = x_dates[insample] # For this example, consider date_value = 2017-02-01 22:52:00 and is of type <class 'numpy.str_'>
with open("modelout.csv", "ab") as csvfile:
np.savetxt(csvfile, date_value, delimiter=",")
np.savetxt(csvfile, profit_value, delimiter=",")
错误是:
ValueError: 预期 1D 或 2D 数组,得到 0D 数组
关于解决方法或如何解决此问题的任何想法?
【问题讨论】:
-
首先是阅读
savetxt文档。此函数旨在编写一个csv文件——一个具有整齐列和行的表格。这就是为什么它需要一个二维数组。和数字与默认fmt。您显然正在尝试编写单个值。类型是np.float32并不重要。它仍然是一个单一的值,具有形状()。你为什么用savetxt? -
嗨!我正在尝试执行此脚本的滑动窗口、多次运行。它是值的时间序列,date_value 是日期时间戳,profit_value 是日期时间戳的美元(浮点数)。我试图将一个日期时间戳和一个浮点值附加到 csv 脚本的每次运行。 date_value 和 profit_value 都是从不同的 numpy 值设置的,这就是我一直尝试使用 savetxt 的原因。
-
您可以在不使用
savetxt的情况下将字符串和浮点数写入文本文件。它们来自数组的事实并不重要。savetxt遍历其 array 参数,并执行f.write( fmt % tuple(row)),即格式化行并将其写入文件。就是这样。