Быстрые способы манипулирования массивом Numpy в массиве - PullRequest
0 голосов
/ 31 декабря 2018

Я хотел бы найти способ быстро манипулировать массивом массивов в Numpy, как этот, который имеет форму (10,):

[array([0, 1, 3]) ,array([0, 1, 7]), array([2]), array([0, 3]), array([4]),
 array([5]), array([6]) ,array([1, 7]), array([8]), array([9])]

Например, я хотел бывычислить общее количество элементов массива, равное 16 для указанного выше массива, но без выполнения цикла for, поскольку на практике мой «вложенный массив» будет довольно большим.

Спасибо!

1 Ответ

0 голосов
/ 31 декабря 2018

Один из способов найти длину массива в вашем случае - это ravel вложенных numpy массивов, а затем найти длину следующим образом:

a = [array([0, 1, 3]) ,array([0, 1, 7]), array([2]), array([0, 3]), array([4]),
 array([5]), array([6]) ,array([1, 7]), array([8]), array([9])]

len(np.concatenate(a).ravel())
#Here we expand the numpy arrays and then flatten it to find the length.

Вывод:

16

Насколько мне известно, ravel имеет лучшее время по сравнению с циклом for.

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