Как добавить новый столбец в массив 4d NumPy - PullRequest
0 голосов
/ 08 мая 2018

Я пытаюсь добавить новый столбец в мой набор данных изображения.

Пример кода:

import numpy as np
A = np.arange(240).reshape(3,4,4,5)
print(type(A))
print(A.shape)
B = np.concatenate([A, np.ones((A.shape[0],4,4,5,1),dtype=int)], axis=1)

print (B.shape)

Дает ошибку:

ValueError: all the input arrays must have same number of dimensions

Контекст:

Рассмотрим это как m выборок считанных изображений (nH = высота, nW = вес, nC = каналы).Набор данных имеет форму (m, nH, nW, nC), и теперь я хочу добавить дополнительный столбец, отражающий изображение «хорошего» или «плохого» примера объекта.

Таким образом, необходимо создатьнабор данных с меткой, добавленной в набор данных для формирования формы: (m, nH, nW, nC, l) где l обозначает метку и может иметь значения 0 или 1.
Как мне этого добиться?Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 08 мая 2018

Еще проще без изменения формы:

A = np.random.rand(3, 4, 4, 5)
B = A[None]           # Append a new dimension at the beginning, shape (1, 3, 4, 4, 5)
B = A[:,:,None]       # Append a new dimension in the middle, shape (3, 4, 1, 4, 5)
B = A[:,:,:,:,None]   # Append a new dimension at the end, shape (3, 4, 4, 5, 1)

Обычно позиция Нет указывает, куда добавить новое измерение.

0 голосов
/ 08 мая 2018

Вам не нужно явно добавлять пятый столбец. Просто измените форму и добавьте пятое измерение.

import numpy as np
A = np.arange(240).reshape(3,4,4,5,1) # add the fifth dimension here
print(type(A))
print(A.shape)

Чтобы установить метку «хорошо» или «плохо», просто перейдите к последнему измерению A

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