Основная помощь в поиске минимальных значений в срезе массива Numpy (или любого массива в этом отношении)? - PullRequest
0 голосов
/ 03 июля 2018

Возможно, это очень просто, но я не смог найти вопрос на сайте:

У меня есть данные временных рядов, и при вызове я могу передавать только длину окна в функцию. В моем случае это 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]. Честно говоря, я мог бы просто решить это с помощью оператора «если», где, если бы размер окна == 14, я сделал бы это первым способом, иначе я бы сделал это вторым способом, но это чувствуется неряшливо.

Я понимаю, что, вероятно, существует очень простое решение, применимое не только к массивам numpy, поэтому, если кто-нибудь сможет помочь, это будет очень много значить:)

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

Я переосмыслил это. Мне просто нужно было пройти в

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

Таким образом, я могу позвонить на любую длину окна, какую захочу, и это займет самые старые 14 цен. Это был действительно длинный день, извините за это.

0 голосов
/ 03 июля 2018

Одна идиома, которая может показаться немного менее неловкой:

np.nanmin(xyzlist[-w:(-w+14) or None], axis = 0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...