在Python 3.x中,我正在使用大型的numpy数组。我希望能够确认(无需实际进行某种实验),我编写的方法是使用数组的副本还是直接引用数组。
我也想确认所涉及的数组是否已被修改。
在C++中,如果我想确保对象未被修改,我可以将其作为const传递...在Python中,我似乎没有这样的保证,必须特别小心。
因此,总结一下:我需要一种方法来告诉我numpy数组是否已产生副本。我需要一种方法来告诉我数组(或任何其他对象)是否已被修改。我更喜欢快速,自动化的方法,而不是进行实验。
我也想确认所涉及的数组是否已被修改。
在C++中,如果我想确保对象未被修改,我可以将其作为const传递...在Python中,我似乎没有这样的保证,必须特别小心。
因此,总结一下:我需要一种方法来告诉我numpy数组是否已产生副本。我需要一种方法来告诉我数组(或任何其他对象)是否已被修改。我更喜欢快速,自动化的方法,而不是进行实验。
.base
的使用还是.flags['OWNDATA']
都可能导致错误的结论。根据NumPy开发人员Robert Kern的说法,目前最好的方法是np.may_share_memory
。 - unutbu