我想像这样对多维数组进行索引:
$Arr | Where {($_.Name -notlike '_s1') -and ($_.Name -notlike 'Print$')}
示例输出:
a = range(12).reshape(3, 2, 2)
def fun(axis, state):
# if axis=0
return a[state, :, :]
# if axis=1 it should return a[:, state, :]
简而言之,我想接受轴作为参数。
我无法想办法做到这一点。任何可能的解决方案?
答案 0 :(得分:1)
您可以使用numpy.rollaxis
将指定轴移动到前面的数组视图:
def fun(a, axis, state):
return numpy.rollaxis(a, axis)[state]
演示:
>>> a = numpy.arange(12).reshape([3, 2, 2])
>>> def fun(a, axis, state):
... return numpy.rollaxis(a, axis)[state]
...
>>> fun(a, 0, 1)
array([[4, 5],
[6, 7]])
>>> fun(a, 1, 1)
array([[ 2, 3],
[ 6, 7],
[10, 11]])
numpy.rollaxis
也支持将轴移动到其他位置,虽然它解释参数的方式有点奇怪。