Потому что как a
, так и b
имеют только одну ось, так как их форма равна (3)
, а параметр оси конкретно относится к оси элементов для конкатенации.
этот пример должен уточнить, что concatenate
делает с осью. Возьмите два вектора с двумя оси, с формой (2,3)
:
a = np.array([[1,5,9],[2,6,10]])
b = np.array([[3,7,11],[4,8,12]])
Сцепляет по 1-ой оси (строки 1, то ряды 2-го):
print concatenate((a,b),axis=0)
array([[ 1, 5, 9],
[ 2, 6, 10],
[ 3, 7, 11],
[ 4, 8, 12]])
сцепляет вдоль 2-ой оси (колонны 1-го, а затем столбцы 2):
print concatenate((a,b),axis=1)
array([[ 1, 5, 9, 3, 7, 11],
[ 2, 6, 10, 4, 8, 12]])
, чтобы получить выход вы представили, вы можете использовать
a = np.array([1,2,3])
b = np.array([4,5,6])
vstack((a,b))
Вы все еще можете сделать это с СЦЕПИТЬ, но это займет больше времени:
a=a.reshape(1,3)
b=b.reshape(1,3)
print concatenate((a,b))
странный !!! Вы можете использовать 'np.vstack ((a, b))' для этой цели (если вы этого не знаете) –