Я попытался использовать resize
в массиве следующим образом:
a = np.array([1,2,3,4,5,6], dtype=np.uint8)
a.resize(4,2)
print a
и выход Ok! (я имел в виду, что ошибки не было). Но когда я запускаю этот код:
a = np.array([1,2,3,4,5,6], dtype=np.uint8).reshape(2,3)
a.resize(4,2)
print a
это породило ошибку, сказав, что ValueError: cannot resize this array: it does not own its data
Мой вопрос: почему после применения reshape
изменилось право собственности на массив? Владение предоставляется кому!? reshape
не создает новую память и выполняет ее работу в той же памяти массива! Итак, почему право собственности изменится?
Я читаю np.reshape и ndarray.resize doc, но я не могу понять причину. Я прочитал этот пост. Я всегда могу проверить ndarray.flags
перед применением метода resize
.