我試圖從數組中返回一個(方形)節,其中索引環繞着邊。我需要處理一些索引,但是它起作用,但是,我希望最後兩行代碼具有相同的結果,爲什麼他們不? numpy如何解釋最後一行?使用數組的Numpy索引
作爲一個額外的問題:我是用這種方法效率低下嗎?我使用的是product
,因爲我需要對範圍進行取模,所以它會環繞,否則我會使用a[imin:imax, jmin:jmax, :]
,當然。
import numpy as np
from itertools import product
i = np.arange(-1, 2) % 3
j = np.arange(1, 4) % 3
a = np.random.randint(1,10,(3,3,2))
print a[i,j,:]
# Gives 3 entries [(i[0],j[0]), (i[1],j[1]), (i[2],j[2])]
# This is not what I want...
indices = list(product(i, j))
print indices
indices = zip(*indices)
print 'a[indices]\n', a[indices]
# This works, but when I'm explicit:
print 'a[indices, :]\n', a[indices, :]
# Huh?