是否可以对NumPy N-D数组进行索引,并在超出范围时回退到默认值?下面是一些假想np.get_with_default(a, indexes, default)
的示例代码:
import numpy as np
print(np.get_with_default(
np.array([[1,2,3],[4,5,6]]), # N-D array
[(np.array([0, 0, 1, 1, 2, 2]), np.array([1, 2, 2, 3, 3, 5]))], # N-tuple of indexes along each axis
13, # Default for out-of-bounds fallback
))
肩印
[2 3 6 13 13 13]
我正在寻找一些内置的功能。如果这样的不存在,那么至少有一些简短和有效的实现这样做。
3条答案
按热度按时间1tuwyuhd1#
我不知道NumPy中是否有什么东西可以直接实现这一点,但你总是可以自己实现它,这不是特别聪明或高效,因为它需要多个高级索引操作,但它做了你需要的:
jaql4c8m2#
我提出这个问题是因为我在寻找完全相同的东西,我提出了下面的函数,它满足了你在二维空间中的要求,它很可能推广到N维空间。
xx
和yy
是索引数组,a
由(y,x)
索引。这给出:
作为一种替代方案,以下实现实现了相同的效果,并且更加简洁:
lyr7nygr3#
我也需要一个解决这个问题的方法,但我想要一个在N维空间中有效的方法,我让马库斯的方法在N维空间中有效,包括从一个比坐标指向的维度更多的数组中进行选择。