У меня есть массив Numpy как следующее:

import numpy as np
arr = np.array([np.array([1]),np.array([1,2]),np.array([1,2,3]),np.array([1,3,4,2,4,2])])

Мне нужна хорошая функция numpy, которая дает мне максимальную длину массивов внутри моего массива arr . Поэтому мне нужна функция numpy, которая в этом примере возвращает 6 .

Это возможно с итерацией, но я ищу более приятный способ, возможно, даже без map()

Также можно будет использовать любую функцию внутри tensorflow или keras.

Спасибо

1
MichaelJanz 3 Сен 2020 в 11:39

2 ответа

Лучший ответ

Мы могли бы сделать:

max(map(len, arr))
#6
2
ansev 3 Сен 2020 в 08:50

Другой способ - использовать функцию keras.preprocessing.sequence.pad_sequences().

Он дополняет последовательности до максимальной длины, но, на мой взгляд, это создает большое использование памяти и в зависимости от массива это может занять некоторое время. Однако это был бы способ без цикла:

len(keras.preprocessing.sequence.pad_sequences(arr)[0])
0
MichaelJanz 3 Сен 2020 в 09:26