Как вернуть top-n вероятность и связанные с ней классы?

Выход

echo $var сильно зависит от значения переменной IFS. По умолчанию он содержит символы пробела, табуляции и новой строки:

[ks@localhost ~]$ echo -n "$IFS" | cat -vte
 ^I$

Это означает, что когда оболочка выполняет разделение поля (или разбиение слов), он использует все эти символы в качестве разделителей слов. Это то, что происходит при ссылке на переменную без двойных кавычек, чтобы ее эхо ($var), и поэтому ожидаемый результат изменяется.

. Один из способов предотвратить разделение слов (помимо использования двойных кавычек) - установить IFS к null. См. http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_05 :

Если значение IFS равно null, ни одно поле

blockquote>

Установка в значение null означает установку пустого значения:

IFS=

Тест:

[ks@localhost ~]$ echo -n "$IFS" | cat -vte
 ^I$
[ks@localhost ~]$ var=$'key\nvalue'
[ks@localhost ~]$ echo $var
key value
[ks@localhost ~]$ IFS=
[ks@localhost ~]$ echo $var
key
value
[ks@localhost ~]$ 

1
задан desertnaut 4 March 2019 в 14:26
поделиться

1 ответ

Это на самом деле вопрос Numpy; Вы можете использовать np.argpartition :

import numpy as np
x =np.array([
   2.55420153e-02, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
   3.41739673e-02, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
   0.00000000e+00, 0.00000000e+00, 2.11688875e-05, 0.00000000e+00,
   0.00000000e+00, 0.00000000e+00, 8.02579585e-01, 0.00000000e+00,
   0.00000000e+00, 1.37978949e-02, 0.00000000e+00, 0.00000000e+00,
   0.00000000e+00, 1.15640553e-02, 0.00000000e+00, 0.00000000e+00,
   0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 6.76391638e-02,
   9.06030431e-03, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
   0.00000000e+00, 0.00000000e+00, 3.56218448e-02, 0.00000000e+00,
   0.00000000e+00, 0.00000000e+00, 0.00000000e+00])

k = 2 # top-k
ind = np.argpartition(x, -k)[-k:]
x[ind]

Результат:

array([0.06763916, 0.80257959])

по запросу, в то время как соответствующие классы находятся в ind:

[ 112]
0
ответ дан desertnaut 4 March 2019 в 14:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: