在numpy数组(或任何数组)的切片中查找最小值的基本帮助?

2024-09-29 23:18:55 发布

您现在位置:Python中文网/ 问答频道 /正文

这可能是非常基本的,但我还没有在网站上找到问题:

我有时间序列数据,只能在调用函数时将窗口长度传递给函数。在我的例子中,这是每日价格数据的14天低点,其中最近的价格是数组/列表中的最后一个值。你知道吗

对于最近的14天低点,我可以打电话

window_length = 14

w = window_length
np.nanmin(xyzlist[-w:], axis = 0)

但我需要的数据不仅是最近14天的低点,而且是尾随的2个14天高点和低点的数据。 我目前的想法是调整窗口的大小,只需拜访最老的14天,所以第二天我会说

window_length = 15

w = window_length
np.nanmin(xyzlist[-w:-w+14], axis = 0)

但是,这对于最近的14天低点不起作用,因为它忽略了存储在[-1]中的值。老实说,我可以用一个'if'语句来解决这个问题,如果window size==14,我会用第一种方法,否则我会用第二种方法,但是感觉很马虎。你知道吗

我意识到可能有一个非常简单的解决方案不仅适用于numpy阵列,所以如果有人能帮上忙,那就意味着:)

提前谢谢!你知道吗


Tags: 数据方法网站np时间序列价格window
2条回答

我想得太多了。我只是想过去

np.nanmin(xyzlist[0:14], axis = 0)

这样的话,我可以在任何窗口长度我想,它将采取最古老的14个价格。真是漫长的一天,抱歉。你知道吗

一个让人感觉稍微不那么尴尬的成语是:

np.nanmin(xyzlist[-w:(-w+14) or None], axis = 0)

相关问题 更多 >

    热门问题