numpy /:冒号等效的数组赋值

时间:2011-10-18 20:30:54

标签: python indexing numpy

我试图将两个不同大小的数组的python / numpy索引联系起来,但我不能通过子程序将索引1从小数组传递到大数组。

例如,我有两个numpy数组:a1a2a1.shape = (240,33,258)a2.shape = (240,40,33,258)。我在a1中找到索引并将这些索引与a2相关联。即。index1 = numpy.where(a > n)。我可以使用

获取我感兴趣的数据
dat1 = a1[index]
dat2 = a2[index[0],:,index[1],index[2]]

将结果数据形状设为dat1.shape = (n)dat2.shape = (n, 40)。为了加速程序,我想通过一个子程序传递索引,但我无法通过子程序传递[index[0],:,index[1],index[2]],因为我无法传递冒号':'。

我相信我的解决办法是在子程序中将数字等价物传递给':',但我没有找到答案。

任何帮助?

非常感谢

2 个答案:

答案 0 :(得分:6)

您应该可以使用slice(None)来代表:。如在

[index[0], slice(None), index[1], index[2]]

答案 1 :(得分:2)

如上所述,:slice(None)的简写。您还可以使用np.s_[index[0],:,index[1],index[2]]作为构造切片元组的便捷语法。