массив numpy не транслируется - PullRequest
0 голосов
/ 30 января 2019

Это пример моей ошибки.Скажем, я создал массив numy

X = np.zeros((1000, 50))

Где 1000 - это особенности (строки), а 50 - примеры (столбцы)

Поскольку я добавляю примеры один за другим, мне придется заменитьстолбцы в массиве 1 на 1, чтобы получить окончательный массив объектов.Я попробовал это:

X[:,i] = example

, где пример имеет размер (1000, 1), и i повторяется для каждого примера.Это не работает, потому что X [:, i] имеет форму (1000,), массив ранга 1.Как мне кодировать это так, чтобы каждый пример заменял строку массива X без выдачи ошибки широковещания.Спасибо.

1 Ответ

0 голосов
/ 30 января 2019

Измените свой вектор перед его назначением.

X[:,i] = example.reshape(-1,)

Это подавит второе измерение и превратит example в форму (1000,)

Или, избегая назначения одного за другим вВ цикле вы можете поместить все свои массивы в список, а затем вызвать np.array в своем списке и транспонировать его, чтобы они были в виде столбцов.Это, вероятно, будет работать лучше, если вы сможете создать свой список массивов в виде списка.

Пример:

arrs = [np.random.randint(10, size=5) for _ in range(5)]
X = np.array(arrs).T
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...