我有一個導入具有形狀(1027,888,3)的ndarray中的圖像。通過dynamcaly生成的索引在numpy ndarray中進行索引
我的任務是創建一個方法,該方法返回2個索引的一維數組,從圖像中選擇一個圖塊。
ii, jj = tile_cordinates(i,j, tile_size)
imshow(image[ii,jj])
我想模擬相同的結果,使用此代碼:
imshow(image[1:32, 2:32])
我試着這樣做:
def tile_coordinates(i, j, tile_size):
return range(i, i + tile_size), range(j, j + tile_size)
ii, jj = tile_coordinates(1,2,32)
imshow(image[ii,jj])
但圖像是不正確的。事實上,結果回報形式與兩個數組索引圖像是(32,3),而使用
image[1:32, 2:32].shape
返回(31,30,3)
因此,如何以形成返回的數組形成tile_coordinates方法來模擬與切片示例相同的結果?它甚至有可能嗎?
PS:規格從作業分配中設置。我已經花了幾個小時看文檔和索引的其他例子,但沒有發現任何可以做我需要的東西。所以我很困難。任何指導將非常感激:)
謝謝!
你肯定你需要「一維」的陣列?一般來說,如果你希望索引操作的輸出是2d,你的索引器應該可以廣播到2d,否則你需要做一些手動重定形([here](http://docs.scipy.org) /doc/numpy/reference/arrays.indexing.html#advanced-indexing)是相應的doc部分)。 – immerrr 2014-10-19 15:56:15
感謝您的文檔參考。 這是任務的規格: 「瓷磚可以在空間上的行和列排列,類似於像素因此,我們也可以知道哪些像素在第i行的瓷磚j列跨度 下面你必須完成。函數tile_coordinates的實現,它給出了這個問題的答案,函數應該返回兩個1維數組,第一個提供給定tile的行座標,第二個提供列座標。據我瞭解,是的,它需要一維。 – JustmeVSI 2014-10-19 16:35:45