Как объединить массивы разных размеров в Python? - PullRequest
0 голосов
/ 21 сентября 2018

Я анализирую некоторые представленные изображениями наборы данных, используя керасы.Я застрял, что у меня есть два разных измерения изображений.Пожалуйста, посмотрите снимок.У объектов есть 14637 изображений с размером (10,10,3), а у объектов2 есть размер (10,10,100)

enter image description here

Есть ли способ, которым я могуобъединить / объединить эти две данные вместе .?

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

Если функции и функции2 содержат функции того же пакета изображений, то есть функции [i] - это одно и то же изображение функций2 [i] для каждого i, то имеет смысл сгруппироватьобъекты в одном массиве с использованием функции numpy concatenate():

newArray = np.concatenate((features, features2), axis=3)

Где 3 - ось, вдоль которой будут объединяться массивы.В этом случае у вас получится новый массив, имеющий размерность (14637, 10, 10, 103).

Однако, если они ссылаются на совершенно разные пакеты изображений, и вы хотите объединить их напервая ось, такая, что 14637 изображений объектов2 помещаются после первого изображения 14637, тогда нет никакого способа, которым вы можете получить массив, так как пустой массив структурирован как матрица, а не как списокобъекты.

Например, если вы попытаетесь выполнить:

> a = np.array([[0, 1, 2]]) // shape = (1, 3)
> b = np.array([[0, 1]]) // shape = (1, 2)
> c = np.concatenate((a, b), axis=0)

Затем вы получите:

ValueError: all the input array dimensions except for the concatenation axis must match exactly

, поскольку вы объединяете вдоль оси = 0, но осиРазмеры 1 отличаются.

0 голосов
/ 21 сентября 2018

Если вы имеете дело с массивами numpy, вы должны иметь возможность использовать метод конкатенации и указать ось, по которой следует объединять данные.В основном: np.concatenate ((array_a, array_b), axis = 2)

...