Объедините массив (1,1) с (1,3), чтобы получить (1,4):
In [168]: arr = np.array([[1,2,3]])
In [169]: arr1 = np.concatenate((arr, np.array([[4]])), axis=1)
In [170]: arr1
Out[170]: array([[1, 2, 3, 4]])
Использование np.append
привело к (4,), потому что,в соответствии с документами:
If `axis` is None, `out` is a flattened array.
Если указать ось в append
:
In [172]: np.append(arr, 4, axis=1)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-172-ca20005ded46> in <module>
----> 1 np.append(arr, 4, axis=1)
<__array_function__ internals> in append(*args, **kwargs)
/usr/local/lib/python3.6/dist-packages/numpy/lib/function_base.py in append(arr, values, axis)
4698 values = ravel(values)
4699 axis = arr.ndim-1
-> 4700 return concatenate((arr, values), axis=axis)
4701
4702
<__array_function__ internals> in concatenate(*args, **kwargs)
ValueError: all the input arrays must have same number of dimensions, but the array at index 0 has 2 dimension(s) and the array at index 1 has 0 dimension(s)
Ошибка в строке concatenate
. Вам нужно указать 2d дополнение, как я делал выше:
In [173]: np.append(arr, [[4]], axis=1)
Out[173]: array([[1, 2, 3, 4]])
np.append(A, B, axis)
- это просто еще один способ написания np.concatenate((A,B), axis)
. С обоими вы должны обратить внимание на размеры.