Какие ошибки вы получили с append method
?«не везет» - такой же плохой дескриптор, как «не сработал».В правильном вопросе вы должны показать ожидаемое значение вместе с ошибками.Однако эта тема поднимается достаточно часто, чтобы мы могли делать хорошие предположения.
In [336]: a = np.ones((3,2),int)
In [337]: b = np.zeros((2,),int)
Но сначала я буду педантичен и попробую append method
:
In [338]: a.append(b)
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-338-d6231792f85d> in <module>()
----> 1 a.append(b)
AttributeError: 'numpy.ndarray' object has no attribute 'append'
lists
метод добавления;numpy массивы - нет.
Существует функция с ненадежным названием append
:
In [339]: np.append(a,b)
Out[339]: array([1, 1, 1, 1, 1, 1, 0, 0])
In [340]: _.reshape(-1,2)
Out[340]:
array([[1, 1],
[1, 1],
[1, 1],
[0, 0]])
, которая работает - в некотором роде.Но если я прочитаю документы и укажу параметр оси:
In [341]: np.append(a,b, axis=0)
...
-> 5166 return concatenate((arr, values), axis=axis)
ValueError: all the input arrays must have same number of dimensions
Теперь он просто вызывает np.concatenate
, превращая 2 аргумента в список.
Если это ошибкаВы получили и не поняли этого, возможно, вам придется просмотреть основные документы о размерах и формах.
a
- это 2d, b
- это 1d.Чтобы объединить, нам нужно изменить форму b
, чтобы она была (1,2)
, форма, которая совместима с (3,2) из a
.Есть несколько способов сделать это:
In [342]: np.concatenate((a, b.reshape(1,2)), axis=0)
Out[342]:
array([[1, 1],
[1, 1],
[1, 1],
[0, 0]])
Держитесь подальше от np.append
;это слишком запутанно для многих новичков и не добавляет ничего существенного к базе concatenate
.