查找所有元素的索引numpy数组

时间:2019-02-18 20:31:30

标签: python python-3.x numpy indexing

我正在使用numpy searchsort()函数来查找numpy数组的索引。它仅适用于某些阵列。发生了什么问题(下面的实现)?

import numpy as np

#specify the dtype in RV
RV = np.array([
  np.array([0.23, 2.5, 5.0, 7.1]),
  np.array(['a1', 'a2']),
  np.array(['b2', 'b1'])
], dtype=object) 
print(RV)
def Rules():
    global r  
    r = np.array(np.meshgrid(*RV), dtype=object).T.reshape(-1,len(RV))
    return r
Rules()
print(r)

print(RV[0].searchsorted(r[:,0])) #working
print(RV[1].searchsorted(r[:,1])) #working
print(RV[2].searchsorted(r[:,2])) #not working 

1 个答案:

答案 0 :(得分:0)

默认情况下,array的{​​{1}}参数必须为排序的。因此,解决方案是:

使用searchsorted()对其进行预先排序:

numpy.sort()

或使用np.sort(RV[2]).searchsorted(r[:,2]) 参数:

sorter