Что означают range и len в моем коде? - PullRequest
0 голосов
/ 28 мая 2020

В части моего кода у меня есть это:

plt.plot(range(1, len(ppn.errors_) +1), ppn.errors_, marker = 'o')

Где ppn.errors_ - вектор. В чем смысл всей этой строчки? (учитывая числа 1?

ppn = Perceptron(eta = 0.1, n_iter = 10)
ppn.fit(X, y) 
plt.plot(range(1, len(ppn.errors_) +1), ppn.errors_, marker = 'o')
plt.xlabel('Epoch')
plt.ylabel('Number of updates')
plt.show()

Ответы [ 3 ]

0 голосов
/ 28 мая 2020

range(1, len(ppn.errors_) +1) - это непрерывный диапазон целых чисел 1, 2, ..., n, где n - длина ppn.errors_.

* первые два аргумента 1006 * - координаты x и y соответственно. Поскольку у вас, вероятно, есть серия, которую вы просто хотите построить, имеет смысл использовать 1, 2, ... в качестве координат x вашего графика.

0 голосов
/ 28 мая 2020

range(a, b) создаст итератор, начиная с a до b - 1. Если начальный индекс 'a' не указан, по умолчанию он равен '0'

iterator - это просто то, к чему вы можете применить for l oop (Пример list, tuple)

len(a) возвращает номер элемента в a

Пример:

range(5) # returns an iterator containing 0, 1, 2, 3, 4

Итак, list(range(5)) вернет [0, 1, 2, 3, 4], потому что * Функция 1021 * преобразует заданный iterator в list

a = list(range(2, 7)) # [2, 3, 4, 5, 6]
x = len(a)
print(x) # Prints 5

Надеюсь, это помогло. Скажите, если вы чего-то не поняли

0 голосов
/ 28 мая 2020

len() дает размер итерируемого объекта, поэтому в данном случае len(ppn.errors_) - это размер вектора (количество элементов / размеров).

range(a,b) даст вам диапазон чисел от a (включительно) до b (исключая).

Итак, range(1, len(ppn.errors_) +1) - это диапазон значений, начинающийся с 1 и заканчивающийся длиной / размером вектора ppn.errors_.

Скажите ppn.errors_ = [7,8,9,10], затем:

len(ppn.errors_) = 4

range(1, len(ppn.errors_) +1) = range(1, 4+1) = range(1,5)

где range(1,5) - это диапазон [1, 2, 3, 4]

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