Сокращение обозначения массива python: «k% parent.shape [0]» означает?

Сегодня я столкнулся с этой нотацией как проходящей этот учебник здесь: https://towardsdatascience.com/genetic-algorithm-implementation-in-python-5ab67bb124a6

parent1_idx = k%parents.shape[0]

что вернется правая сторона? и как называется такое выражение? заранее спасибо !

Что вас смущает? Это оператор по модулю. Итак, это k % <something>

kuro 29.10.2018 09:57

предположительно shape - это своего рода индексированный атрибут parents (т.е. parents.shape дает вам список (или что-то еще), из которого вы можете извлечь индекс [0]). Я не уверен насчет k%, хотя я видел %, IIRC, в строковом форматировании (learnpython.org/en/String_Formatting). Если k - переменная, вероятно,% - это по модулю.

NotAnAmbiTurner 29.10.2018 09:58
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
2
284
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

% - оператор в python, i-e Modulus operator - it gives remainder of the division of left operand by the right

Ответ принят как подходящий

Я вижу эту строку в этом фрагменте кода из упомянутой статьи:

for k in range(offspring_size[0]):
     # Index of the first parent to mate.
     parent1_idx = k%parents.shape[0]
     # Index of the second parent to mate.
     parent2_idx = (k+1)%parents.shape[0]

Где parents определяется следующим образом:

parents = numpy.empty((num_parents, pop.shape[1]))
for parent_num in range(num_parents):
    max_fitness_idx = numpy.where(fitness == numpy.max(fitness))
    max_fitness_idx = max_fitness_idx[0][0]
    parents[parent_num, :] = pop[max_fitness_idx, :]
    fitness[max_fitness_idx] = -99999999999
return parents

Из двух приведенных выше строк совершенно очевидно, что и k, и parents.shape[0] являются целыми числами, и, следовательно, строка представляет собой простое оператор по модулю между двумя числовыми переменными: a = b % c.

Другие вопросы по теме