微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决是否有确定 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 举报,一经查实,本站将立刻删除。