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

2024-07-03 06:38:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用numpysearchsort()函数来查找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 

Tags: 函数importnumpyobjectasnp数组array
1条回答
网友
1楼 · 发布于 2024-07-03 06:38:14

默认情况下,searchsorted()array参数必须是排序的参数。因此,解决方案是:

使用numpy.sort()提前排序:

np.sort(RV[2]).searchsorted(r[:,2])

或者使用sorter参数:

RV[2].searchsorted(r[:,2],sorter=np.argsort(RV[2]))

相关问题 更多 >