Numpy стек в первом измерении? - PullRequest
0 голосов
/ 04 мая 2020

У меня есть два np.arrays с формой (3,8), как я могу сделать это в (2,3,8) Я пытался с np.concatenate, но это дает мне только

Traceback (последний вызов был последним): файл "", строка 1, в файле "<<strong> array_function internals>", строка 6, в сцеплении TypeError: только целочисленные скалярные массивы могут быть преобразованы в скалярный индекс

ошибка. Мой массив a1:

массив ([[0,08, 0,3, 0,51, 0,37, 0,02, 0,52, 0,05, 0,08], [0,77, 0,01, 0,08, 0,67, 0,01, 0,02, 0,17, 0,77 ], [0,3, 0, 0,07, 0,17, 0,11, 0,04, 0,05, 0,34]], dtype = float32)

Мой массив a2:

массив ( [[0,08, 0,3, 0,51, 0,37, 0,02, 0,52, 0,05, 0,08], [0,77, 0,01, 0,08, 0,67, 0,01, 0,02, 0,17, 0,77], [0,3, 0,0, 0,07, 0,17, 0,11, 0,04. , 0,05, 0,34]], dtype = float32)

Ответы [ 2 ]

2 голосов
/ 04 мая 2020

Попробуйте сделать:

a1 = a1.reshape((1,3,8))
a2 = a2.reshape((1,3,8))
np.concatenate((a1,a2))

или

array = np.concatenate((a1.reshape((1,3,8)),a2.reshape((1,3,8))))

На основании сообщения об ошибке также выглядит, что вы, возможно, забыли включить скобки вокруг массивов в np.concatenate().

1 голос
/ 04 мая 2020

Попробуйте следующий простой способ сложения массива:

>>> import numpy as np
>>> a = np.array([[0.08, 0.3 , 0.51, 0.37, 0.02, 0.52, 0.05, 0.08], [0.77, 0.01, 0.08, 0.67, 0.01, 0.02, 0.17, 0.77], [0.3 , 0. , 0.07, 0.17, 0.11, 0.04, 0.05, 0.34]])
>>> a.shape
(3, 8)
>>> b = np.array([[0.08, 0.3 , 0.51, 0.37, 0.02, 0.52, 0.05, 0.08], [0.77, 0.01, 0.08, 0.67, 0.01, 0.02, 0.17, 0.77], [0.3 , 0. , 0.07, 0.17, 0.11, 0.04, 0.05, 0.34]])
>>> b.shape
(3, 8)
>>> c = np.array([a, b])
>>> c.shape
(2, 3, 8)
>>> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...