Вы можете изменить размер ndarray, используя ndarray.resize .Я не использовал это широко, поэтому я не могу говорить о преимуществах или недостатках.Тем не менее, это выглядит довольно просто
>>> a = ones(3)
>>> a.resize(1)
>>> a
array([ 1.])
Тем не менее, кажется, что ошибки возникают довольно часто
>>> a.resize(3)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-34-bc3af9ce5259> in <module>()
----> 1 a.resize(3)
ValueError: cannot resize an array that references or is referenced
by another array in this way. Use the resize function
Они могут быть подавлены путем ввода refcheck=False
.Это говорит NumPy, что вы знаете, что делаете, и нет необходимости проверять, что другие объекты не используют ту же память.Естественно, это может вызвать проблемы, если это не так.
>>> a.resize(3, refcheck=False)
>>> a
array([ 1., 0., 0.])
>>> a.resize((2, 2), refcheck=False)
>>> a
Out[39]:
array([[ 1., 0.],
[ 0., 0.]])