Подводя итог одинаковых элементов списка - PullRequest
0 голосов
/ 24 апреля 2018

У меня есть массив с элементами, и я хочу подвести итог точности. Я хочу суммировать массивы, которые имеют элементы в том же порядке. Я скорее не буду писать цикл for, проходящий через каждый элемент с zip и суммирующий их, есть ли более простой способ сделать это?

Ниже приведены два массива, и в настоящее время мой код приведен ниже для расчета суммы.

yp = [[0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1]]
y = [[0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1]]

sums = np.sum(yp == y)

Я получаю точность ноль.

1 Ответ

0 голосов
/ 24 апреля 2018

Используя ваш пример:

yp = [[0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1]]
y = [[0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1]]

# First make the two arrays in question numpy arrays.
yp = np.array(yp)
y = np.array(y)
array_length = y.shape[1] # store length of sub arrays

equal_elements = np.array(yp) == np.array(y)  # check all equal elements
sums = np.sum(equal_elements, 1) # sum the number of equal elements in each sub array, use axis 1 as each array/sample is axis 0
equal_arrays = np.where(sums==array_length)[0] # returns a tuple, so index first element immediately

number_equal_arrays = equal_arrays.shape[0]  # What elements are equal
print('Number of equal arrays %d' % number_equal_arrays)
print('Accuracy %0.2f' % (number_equal_arrays/yp.shape[0]))

печать

Количество равных массивов 6

Точность 1,00

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...