2013-05-30 30 views
1

是否有可能找到切片的父数组即可。切片取自的数组?我想这样做,所以我可以将功能添加到matplotlib图中,从而允许您更改交互式地在图中查看的数组的哪一部分。举例来说,如果我这样做找到numpy切片数组的父数组

plt.pcolormesh(myArray[0,:,:]) 

我想能够运行一些代码的情节改为

plt.pcolormesh(myArray[1,:,:]) 

,但要做到这一点,我需要知道myArray的[0 ,: ,:]是myArray的一部分。

感谢 尼尔

回答

4

通过简单的切片,你可以看看base属性:

a = np.arange(50) 
b = a[10:20] 
print (b.base is a) 

不过,我不相信,这是保证在所有环境下工作.. (取决于a等的连续性)

+2

基本上,还有另外一个问题。可能是'b.base是a.base',而不是'b.base也是''。有'np.may_share_memory',它会告诉你这两个必须有一些共同的基础,但是没有办法找出它是否是另一个的切片,因为两个数组可能是同一个数组的不兼容切片。 – seberg

+1

@seberg - 正确。这只适用于非常简单的情况。不过,我认为这是一个普遍的足够简单的情况值得一提。 – mgilson

+0

是的,只是想警告,特别是因为版本1.7有所改变。这里。在他的情况下,如果你也投入大步的信息,你应该可以得到相当远的。 – seberg