Объединенные индексы каждого массива Numpy в матрице - PullRequest
1 голос
/ 05 апреля 2020

Итак, у меня есть Numpy массив с кучей numpy массивов внутри них. Я хочу сгруппировать их по позиции в их индивидуальном массиве.

Например: если матрица:

[[1, 2], [2, 3], [4, 5], [6, 7]]

, тогда код должен вернуть:

[[1, 2, 4, 6], [2, 3, 5, 7]]

This потому что 1, 2, 4, 6 - это все первые элементы в их отдельных массивах, а 2, 3, 5, 7 - вторые элементы в их отдельных массивах.

Любой знает какую-то функцию, которая могла бы выполнять это. Спасибо.

Ответ в Python.

Ответы [ 2 ]

1 голос
/ 05 апреля 2020

Использование numpy transpose должно помочь:

a = np.array([[1, 2], [2, 3], [4, 5], [6, 7]])
a_t = a.T
print(a_t)
array([[1, 2, 4, 6],
       [2, 3, 5, 7]])
0 голосов
/ 05 апреля 2020

Ваши данные в виде списка:

In [101]: alist = [[1, 2], [2, 3], [4, 5], [6, 7]]                                             
In [102]: alist                                                                                
Out[102]: [[1, 2], [2, 3], [4, 5], [6, 7]]

и в виде массива numpy:

In [103]: arr = np.array(alist)                                                                
In [104]: arr                                                                                  
Out[104]: 
array([[1, 2],
       [2, 3],
       [4, 5],
       [6, 7]])

Стандартная идиома для «транспонирования» списков:

In [105]: list(zip(*alist))                                                                    
Out[105]: [(1, 2, 4, 6), (2, 3, 5, 7)]

с массивами, есть метод транспонирования:

In [106]: arr.transpose()                                                                      
Out[106]: 
array([[1, 2, 4, 6],
       [2, 3, 5, 7]])

Первый массив (4,2) формы; его транспонирование равно (2,4).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...