В Python 3.x я работаю с большими массивами numpy. Я хотел бы иметь подтверждение (без фактического выполнения какого-либо эксперимента), что методы, которые я написал, либо работают с копией массива OR, либо работают с прямой ссылкой на массив.Как проверить, выполняется ли копирование на Python?
Я хотел бы также подтвердить, что массив, о котором идет речь, был изменен или не был изменен.
В C++, если бы я хотел убедиться, что объект не был изменен, я мог бы передать его как const ... в Python, я, похоже, не имел таких заверений и должен быть очень осторожным.
Итак, чтобы подвести итог: мне нужно выяснить, была ли копия получена или не была создана из массива numpy. Мне нужен способ определить, был ли изменен массив (или любой объект). Я предпочел бы быстрый, автоматический способ, а не эксперимент.
Оба [(наивным использование) '.base'] (http://stackoverflow.com/questions/11286864/is-there-a-way-to-check-if-numpy-arrays-share -the-same-data # comment14852955_11286976) и ['.flags ['OWNDATA']'] (http://stackoverflow.com/q/28886731/190597) могут привести к ложным выводам. [Согласно разработчику NumPy Роберту Керну] (http://stackoverflow.com/a/10752605/190597), лучшее, что у нас есть на данный момент: 'np.may_share_memory'. – unutbu