我有一个多维数组a:
a = np.random.uniform(1,10,(2,4,2,3,10,10))
对于维度4-6,我有3个列表,其中包含对数组“a”的维度进行切片的索引
^{pr2}$如何将数组“a”切片以获得:
b = a[0,:,0,dim4,dim5,dim6]
所以b应该是一个具有形状(4,2,3,4)的数组,并且包含a的相应维度的元素。当我尝试上面的代码时,我得到一个错误消息,说不同的形状不能一起广播到轴4-6,但是如果我要这样做:
b = a[0,:,0:2,0:3,0:4]
尽管切片列表的长度各不相同,但它确实有效。那么如何使用非相邻索引对多维数组进行切片呢?在
您可以使用
numpy.ix_
函数来构造像这样的复杂索引。它获取一个array_like
序列,并从中生成一个“开放网格”。docstring中的示例非常清楚:因此,对于您的数据,您应该:
使用
^{pr2}$np.squeeze
删除size-1维度:相关问题 更多 >
编程相关推荐