Как преобразовать мульти массив в соответствии с первым элементом в Python? - PullRequest
0 голосов
/ 19 апреля 2020

У меня есть такой массив:

[[0,21], 
 [1,23], 
 [1,21], 
 [0,23], 
 [1,24]]

Какой самый быстрый способ преобразовать его в два массива, таких как:

a = [21,23]
b = [21,23,24]

Я знаю, что делать это с циклом, есть ли библиотека для этого?

1 Ответ

0 голосов
/ 19 апреля 2020

Вы можете сделать это, используя numpy: -

import numpy
a=[[0,21], 
 [1,23], 
 [1,21], 
 [0,23], 
 [1,24]]

b=numpy.array(a)
c = numpy.array([[False,True],[False,True],[False,True],[False,True],[False,True]])
print(b[c][:2])
print(b[c][2:])

В качестве альтернативы, мы можем достичь с помощью numpy .arange (). Мы создаем массив c из b, давая индекс тех элемент, который мы хотим от каждого из вложенных массивов. Здесь мы хотим получить второй элемент из каждого из этих вложенных массивов. Здесь (1,1,1,1,1) в данном случае. Получив массив c, мы сделали нарезку по желанию.

import numpy
a=[[0,21], 
 [1,23], 
 [1,21], 
 [0,23], 
 [1,24]]

b=numpy.array(a)
c=b[numpy.arange(len(b)),[1,1,1,1,1]]
print(c[:2])
print(c[2:])
...