Соответствует длинам нескольких Numpy массивов неравной длины - PullRequest
1 голос
/ 19 июня 2020

Я выполняю некоторую обработку данных, которые поступают в наборах по 3 тысячи значений. Иногда массивы имеют немного разную длину, и я пытаюсь найти способ найти массив минимальной длины и сопоставить с ним два других.

# Some randomly generated sequences
a = array([7, 1, 7, 8, 0, 0, 1, 2, 8, 7, 2, 3])
b = array([0, 1, 1, 8, 3, 4, 1, 5])
c = array([8, 3, 3, 1, 4, 6, 6, 7, 3, 8, 8])

# What I'd like accomplished
a = array([7, 1, 7, 8, 0, 0, 1, 2])
b = array([0, 1, 1, 8, 3, 4, 1, 5])
c = array([8, 3, 3, 1, 4, 6, 6, 7])

Эта проблема, кажется, хорошо решена для 2 массивов разной длины, но мои поиски не выявили ничего для сопоставления длин нескольких массивов. Глядя на некоторые методы Numpy, такие как resize и array_split, похоже, не было той функциональности, которую я искал. Прежде чем я погрузлюсь в написание какой-нибудь уродливой рекурсивной функции, используя направления, которые я нашел для соответствия 2 массивам, есть ли у кого-нибудь предложения о том, как это можно сделать удобно?

1 Ответ

2 голосов
/ 19 июня 2020

Сначала мы можем вернуть min длину

mlen = min(map(len, [a, b, c]))
8

Затем

newl=[x[: mlen ] for x in [a,b,c]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...