У меня есть список из примерно 10 6 пар, где каждый элемент пары имеет значение -1, 0 или 1:
[
[ 0, 1],
[-1, -1],
[ 0, -1],
[ 1, 0],
...
]
Я хочу разделить эти пары на две группы (то есть списки пар) в зависимости от того, равен ли первый элемент пары -1 или нет 1 .
Есть ли способ сделать это эффективно с NumPy?
Несмотря на терминологию и обозначения, которые я использовал выше, я на самом деле агностик относительно фактических типов пар и «списков» пар. Использование любой структуры данных numpy или python приводит к наиболее эффективному решению. (Но не панды, пожалуйста.)
EDIT:
Например, если начальный список пар равен
[
[ 0, -1],
[ 0, -1],
[ 1, -1],
[-1, -1],
[ 1, 0],
[-1, 1],
[-1, -1],
[ 0, 0],
[ 0, 1],
[-1, 0]
]
... приемлемый результат будет состоять из двух списков
[
[-1, -1],
[-1, 1],
[-1, -1],
[-1, 0]
]
... и
[
[ 0, -1],
[ 0, -1],
[ 1, -1],
[ 1, 0],
[ 0, 0],
[ 0, 1]
]
Последние два списка сохраняют порядок элементов в том виде, в каком они были в исходных списках. Это было бы моим предпочтением, но это не обязательно. Например, раствор, состоящий из
[
[-1, -1],
[-1, -1],
[-1, 0],
[-1, 1]
]
... и
[
[ 0, -1],
[ 0, -1],
[ 0, 0],
[ 0, 1],
[ 1, -1],
[ 1, 0],
]
... также будет приемлемо.
1 Другими словами, все пары в одной группе должны иметь -1 на своей первой позиции, а все элементы другой группы должны иметь либо 0, либо 1 на своей первой позиции .