2013-05-30 60 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