在Python 3.x中,我正在处理大型的numpy数组。我希望得到确认(不必实际做某种实验)我写的方法要么使用数组的副本,要么使用对数组的直接引用。如何验证在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开发者Robert Kern](http://stackoverflow.com/a/10752605/190597),我们目前最好的是'np.may_share_memory'。 – unutbu 2015-04-02 12:39:58