Я генерировал списки переменной длины, упрощенный пример.Создание массива с фиксированной длиной из списков переменной длины
list_1 = [5] * 5
list_2 = [8] * 10
Я тогда хочу конвертировать в np.array для манипуляции. Таким образом, они должны иметь одинаковую длину (например, 1200), причем хвост заполняется нулями или усечен на целевой длине.
Для фиксированной длиной 8, я рассмотрел настройки нулевого массива затем заполняя соответствующие записи:
np_list_1 = np.zeros(8)
np_list_1[0:5] = list_1[0:5]
np_list_2 = np.zeros(8)
np_list_2[0:8] = list_2[0:8] # longer lists are truncated
я создал следующую функцию для получения этих
def get_np_fixed_length(list_like, length):
list_length = len(list_like)
np_array = np.zeros(length)
if list_length <= length:
np_array[0:list_length] = list_like[:]
else:
np_array[:] = list_like[0:length]
return np_array
Есть ли более эффективный способ сделать это? (Я ничего не мог увидеть в документации numpy)