我正在使用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
答案 0 :(得分:0)
默认情况下,array
的{{1}}参数必须为排序的。因此,解决方案是:
使用searchsorted()
对其进行预先排序:
numpy.sort()
或使用np.sort(RV[2]).searchsorted(r[:,2])
参数:
sorter