我有一個numpy數組,我想獲得第i個點的「鄰居」。通常我使用的數組是二維的,但下面的一維例子說明了我在找什麼。如果在Python中包裝切片/ numpy
A = numpy.array([0,10,20,30,40,50,60,70,80,90])
然後元件4的(大小5)附近是[20,30,40,50,60]
,這可以很容易地通過執行A[i-2:i+3]
來獲得。
但是,我還需要鄰域「環繞」數組的邊緣,以便元素0的鄰域爲[80,90,0,10,20]
,而元素9的鄰域爲[70,80,90,0,10]
。我似乎無法找到一種優雅的方式來做到這一點,所以每次出現這種情況時(最常見的是這種情況),我最終不得不使用一些複雜的,煩人的邏輯。在2D情況下,點的鄰域將是矩形陣列。
所以我的問題是,有沒有一種簡潔的方式來表達這種「環繞式鄰居」操作在numpy中?我更喜歡返回一片而不是副本的東西,但可讀性和速度是最重要的考慮因素。
要注意的是根本不可能得到在numpy的這樣一個子陣列的視圖;子陣列不能使用單一步幅的每個座標軸以10秒 –