Преобразование элементов многомерного массива в одинаковое количество массивов - PullRequest
1 голос
/ 07 января 2020

Я выполняю проект Computer Vision, в котором я получаю сообщение об ошибке 'при установке элемента массива с последовательностью' при попытке изменить тип данных матрицы входного изображения. Я понял, что это происходит, потому что матрица входного изображения, которую я имею, не имеет одинаковое количество элементов во всем ее массиве. Можно ли как-то преобразовать это входное изображение в 2D-массив с одинаковым количеством элементов в каждом из его массивов?

Я получаю сообщение об ошибке при попытке выполнить следующую строку: X_train = X_train.astype('float32')

Любая помощь будет принята с благодарностью. Приветствия.

1 Ответ

0 голосов
/ 07 января 2020

Вам нужно дополнить строки меньшим количеством элементов нулями, чтобы их длина равнялась длине самого длинного массива (или списка) в списке списков (матрица). Ниже приведен фрагмент кода для дополнения списка списков неравной длины в матрицу одинаковой длины строки:

import numpy as np
unpadded_matrix = np.array([[1, 2], [3, 4, 5], [6, 7, 8, 9]])
max_len = max([len(row) for row in unpadded_matrix])
np.array([row + [0]*(max_len-len(row)) for row in unpadded_matrix])

o / p:

array([[1, 2, 0, 0],
       [3, 4, 5, 0],
       [6, 7, 8, 9]])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...