ValueError: нульмерные массивы нельзя объединять, когда массивы не являются нульмерными и находятся внутри скобок / скобок - PullRequest
0 голосов
/ 14 апреля 2020
        print(foo.shape)  # prints(1,6,288,512)

        for i in range(2):
            print(foo[:,i].shape,foo[:,i+2].shape, foo[:,i+4].shape)
            # prints (1, 288, 512) for all three

            fi = np.concatenate([foo[:,i],foo[:,i+2], foo[:,i+4]],axis=0)
            #expecting fi to be a (3,288,512) array

последняя строка возвращает

ValueError: zero-dimensional arrays cannot be concatenated

Массивы не являются нуль-мерными, и я поставил скобки / скобки вокруг массивов, которые хочу объединить, поэтому я не уверен, как это это даже возможно. Numpy версия 1.18.2, с python 3.6.

---------------- добавлено ----------- Когда Вместо этого я складываю его, он не возвращает ошибку, но форма получающегося массива странная.

fi = np.stack([foo[:,i],foo[:,i+2], foo[:,i+4]],axis=0)
print(fi.shape)
# returns (3,)

1 Ответ

0 голосов
/ 14 апреля 2020

Массивы должны быть переданы в np.concatenate как кортеж:

np.concatenate((foo[:,i],foo[:,i+2], foo[:,i+4]),axis=0)

должно работать.


Более конкретно, следующие MWE работают для я:

foo = np.ones((1, 6, 288, 512))

bar = np.concatenate((foo[:, 0], foo[:, 2], foo[:, 4]), axis=0)  # no exception raised
print(bar.shape) # prints (3, 288, 512)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...