Синтаксис чисел для среднего

78
13

При использовании python/numpy я столкнулся с следующим синтаксисом:

np.mean(predicted == docs_test.target)

где аргументы имеют тип numpy.ndarray

В чем смысл == здесь?

Спасибо, Jaideep

спросил(а) 2021-01-25T20:00:32+03:00 4 месяца, 3 недели назад
1
Решение
88

Предполагая, что predicted и docs_test.target - это два массива одинакового размера, это вычисляет долю элементов, в которых два массива находятся в точном согласии.

Например,

In [1]: import numpy as np

In [2]: a = np.array([1, 2, 3, 4, 5, 6, 7])

In [3]: b = np.array([1, 3, 7, 4, 5, 0, -10])

In [4]: np.mean(a == b)
Out[4]: 0.42857142857142855

Это говорит нам, что в ~ 43% случаев (3 из 7) a и b согласуются.

ответил(а) 2021-01-25T20:00:32+03:00 4 месяца, 3 недели назад
77

Если оба predicted и docs_test.target являются массивами numpy, тогда == вернет новый массив с 1 вместо совпадающих элементов и 0 где элементы будут отличаться. mean этого массива даст вам меру сходства, в основном numberofmatchingelements/lengthofpredictedarray.

ответил(а) 2021-01-25T20:00:32+03:00 4 месяца, 3 недели назад
63

Из документов:

Каждое из... сравнения (==, <, >, <=, >= !=) Эквивалентно соответствующей универсальной функции

В этом случае соответствующая универсальная функция numpy.equal:

numpy.equal(x1, x2[, out])

Возврат (x1 == x2) по элементам.

ответил(а) 2021-01-25T20:00:32+03:00 4 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема