Почему перестали работать события в Mainnet, Ropsten и Rinkeby?

Ниже приведен подход с использованием np.argpartition -

idx = np.argpartition(a,range(M))[:,:-M-1:-1] # topM_ind
out = a[np.arange(a.shape[0])[:,None],idx]    # topM_score

Прогон образца -

In [343]: a
Out[343]: 
array([[ 1. ,  0.3,  0.4],
       [ 0.2,  0.6,  0.8],
       [ 0.1,  0.3,  0.5]])

In [344]: M = 2

In [345]: idx = np.argpartition(a,range(M))[:,:-M-1:-1]

In [346]: idx
Out[346]: 
array([[0, 2],
       [2, 1],
       [2, 1]])

In [347]: a[np.arange(a.shape[0])[:,None],idx]
Out[347]: 
array([[ 1. ,  0.4],
       [ 0.8,  0.6],
       [ 0.5,  0.3]])

Альтернативно, возможно, медленнее, но немного короче код для получения idx будет с np.argsort -

idx = a.argsort(1)[:,:-M-1:-1]

Вот post , содержащий некоторый тест времени выполнения, который сравнивает np.argsort и np.argpartition с подобная проблема.

0
задан Руслан Миров 27 March 2019 в 10:59
поделиться