我想说明我的问题是最容易的,一般的情况很难解释。在
假设我有一个矩阵a with dimensions NxMxT,
我们可以把T看作时间维度(使问题更简单)。设(n,m)是通过NxM的指数。我可以调用(n,m)状态空间标识符。然后我需要找到
^{pr2}$
也就是说,在整个状态空间中,找到仍然高于最后一次(在时间维度中)观测值的最小状态空间值。在
我的第一次尝试是首先解决内部问题(找到比[…,-1]高的a):aHigherThanLast = a[ a > a[...,-1][...,newaxis] ]
然后我想找出所有这些中最小的一个(n,m)。不幸的是,aHigherThanLast现在包含了所有这些值的一维数组,因此不再有(n,m)对应关系。对此,有什么更好的方法?在
另外一个问题是:状态空间是可变的,它也可能是3个或更多维度(NxMxKx…),我不能硬编码。所以任何一种for (n,m,t) in nditer(a):
不可行。在
非常感谢!在
/编辑:a = array([[[[[[[[ 0., 2., 1.],
[ 0., 2., 1.],
[ 0., 2., 1.],
[ 0., 2., 1.],
[ 0., 2., 1.],
[ 0., 2., 1.],
[ 0., 2., 1.],
[ 0., 2., 1.],
[ 0., 2., 1.],
[ 0., 2., 1.]]]],
[[[[ 0., 2., 1.],
[ 0., 2., 1.