我有多维数组的变量称为resultsten
,具有以下形状在切片尺寸
print np.shape(resultsten)
(3, 3, 6, 10, 1, 9)
在一些场合中,我使用此阵列的一部分在一个称为cleanup
程序,其然后进一步泪此阵列分割成x
,y
,并且z
阵列:
x,y,z = cleanup(resultsten[0,:,:,:,:,:])
def cleanup(resultsmat):
x = resultsmat[:,:,:,:,2]
y = resultsmat[:,:,:,:,1]
z = resultsmat[:,:,:,:,4]
return x,y,z
然而,也有可能发生,我不想放整个矩阵在我的程序cleanup
,即:
x,y,z = cleanup(resultsten[0,0,:,:,:,:])
这当然给了一个错误,因为给cleanup
指标不符合预期指数。 我想知道是否有可能在切片中包含可变数量的尺寸。
我想知道一个命令,它接受每个维度的所有条目,直到最后一个维度,它只需要一个索引。
我已经看到了可以用于除第一个全尺寸做到这一点,如
resultsten[1,:,:,:,:,:]
给出了相同的结果:
resultsten[1,:]
我尝试这样做:
resultsten[:,1]
但它没有给出所需的结果,Python解释它是这样的:
resultsten[:,1,:,:,:,:]
MWE:
def cleanup(resultsmat):
x = resultsmat[:,:,:,0,2]
y = resultsmat[:,:,:,0,1]
z = resultsmat[:,:,:,0,4]
return x,y,z
resultsten=np.arange(3*3*6*10*1*9).reshape(3,3,6,10,1,9)
x0,y0,z0 = cleanup(resultsten[0,:,:,:,:,:]) #works
x0,y0,z0 = cleanup(resultsten[0,0,:,:,:,:]) #does not work
http://docs.scipy.org/ doc/numpy/reference/arrays.indexing.html#basic-slicing – seberg
不完全确定,b您可能正在寻找Ellipsis对象:'resultsmat [...,0,2]'等。请使用seberg提供的链接获取更多信息。 – Evert
省略号正是我要找的。我已经浏览了SciPy文档,但是我错过了省略对象。我该如何继续,因为我不能接受评论作为答案? – ROIMaison