是否有确定 numpy 索引表达式中使用的索引数量的通用方法?

问题描述

numpy 中可以使用许多不同的东西作为索引器,在我的例子中最常见的是整数和布尔表达式的列表,但切片等也在表中。 现在我有一个函数,它将索引表达式作为参数并使用预计算数组的相应元素。 作为 MWE:

import numpy as np
def f(indexer):
    return f.M[:,indexer]
f.M = np.repeat([[1,2,3,4,5]],axis=0)
# Now I can call f with different indexing expressions
f([1,4])
f(slice(0,None,2))
f([True,False,True,False])

现在我想在实际进行索引之前计算出 f(indexer) 的形状(我需要它来构造一些辅助数组)。 对于列表,它显然是 (3,len(indexer)) 而对于布尔索引表达式它是 (3,np.nonzero(indexer)),对于我什至不知道的切片,但是有没有(简单、快速、Pythonic、通用)的方法来获得f.M[:,indexer] independent 的大小,我使用什么样的索引表达式?如果它不是通用的,那么也许至少有一个适用于布尔表达式和列表?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)