我有一个数组a = [1, 2, 3, 4, 5, 6]
和b = [1, 3, 5]
,我想映射a
使得对于a
每一个元素,在b
元素之间是它会被映射到的b
指数是上范围的a
包含在,不是在口头上最好的解释,但这里有一个例子Python的 - 简单的方法来“比较”映射一个阵列到另一个
a = 1 -> 0 because a <= first element of b
a = 2 -> 1 because b[0] < 2 <= b[1] and b[1] = 3
a = 3 -> 1
a = 4 -> 2 because b[1] < 4 <= b[2]
所以最终的产品我想是f(a, b) = [0, 1, 1, 2, 2, 2]
我知道我只需循环,解决它,但我不知道是否有是一个聪明,快速(矢量)的方式来做到这一点的大熊猫/ numpy的
是那些阵列总是嘱咐? – taras
是的,你可以假定他们是有序的。也可以假设b中的每个元素都包含在一个(没有这个约束的更一般的解决方案将是太棒了,但我认为它更容易) – Michael