我试图从数组中返回一个(方形)部分,其中索引环绕边缘。我需要处理一些索引,但是它可以工作,但是,我希望最后两行代码具有相同的结果,为什么不呢?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?