我很难理解这个错误,因为我会给你一个正常工作的例子和一个我感兴趣的但是 不正常 的例子。
我需要分析一个包含一整年每小时价格的数据集,称为 sys_prices
,经过各种转换后,它是一个具有 8785 行(1 列)的 numpy.ndarray
对象,每行都是一个只包含一个元素的 numpy.ndarray
项目,该元素为一个 numpy.float64
数字。
不正常的代码如下:
stop_day = 95
start_day = stop_day - 10 # 10 days before
stop_day = (stop_day-1)*24
start_day = (start_day-1)*24
pcs=[] # list of prices to analyse
for ii in range(start_day, stop_day):
pcs.append(sys_prices[ii][0])
p, x = np.histogram(pcs, bins='fd')
*24
的部分是调整数据集中的索引,以尊重每小时的分辨率。
我期望将列表pcs
提供给histogram方法,以便将我的直方图值和箱边缘分别放入p和x中。
我之所以这样说是因为以下代码可行:
start_day = 1
start_month = 1
start_year = 2016
stop_day = 1
stop_month = 2
stop_year = 2016
num_prices = (date(stop_year, stop_month, stop_day) - date(start_year, start_month, start_day)).days*24
jan_prices = []
for ii in range(num_prices):
jan_prices.append(sys_prices[ii][0])
p, x = np.histogram(jan_prices, bins='fd') # bin the data`
代码的区别在于,有效的代码只分析从一年中选择的某一天开始向后任意期间内的10天,而工作示例使用1月份所有价格(例如数据集的前744个值)。
更奇怪的是:我使用了不同的“stop_day”值,似乎95会引发错误,而99、100或200则不会。您能帮我吗?
function_base
来理解它,似乎一些 minimum 和 maximum 变量是无限的 NaN。考虑到数据集中充满了浮点数,其中一些小数部分有周期性数字,这可能是原因吗?当将它们附加到列表中时,我已经应用了float
方法来处理这些数字:这样做可以解决问题吗? - Filippo Antonio Capizzi