Я недавно перешел с np.ndarray.resize()
на np.resize()
. Меня беспокоит то, что при использовании последнего в результирующем массиве есть базовый объект, который я не могу объяснить. Может кто-нибудь объяснить мне это?
Обратите внимание, что я понимаю различия из-за ссылок и refcheck
. В коде нет ссылок на объект, кроме a
; Я переключился на np.resize()
, чтобы PyCharm / i Python не жаловался, поскольку они содержат дополнительные ссылки.
Первое:
>>> a = np.arange(5)
>>> a.resize(10)
>>> a.base is None
True
Второе:
>>> a = np.arange(5)
>>> b = a
>>> a = np.resize(a, 10)
>>> a.base
array([0, 1, 2, 3, 4, 0, 1, 2, 3, 4])
>>> a.base is a, a.base is b
(False, False)