Массивы

716 задачвместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
В городской больнице ведут статистику вызовов скорой помощи. Строки — районы города, столбцы — дни недели. Найдите самый спокойный день недели (с минимальным количеством вызовов суммарно). 

Формат входных данных: Первая строка содержит два целых числа n и m (1 ≤ n, m ≤ 100) — количество районов и дней. Следующие n строк содержат по m целых неотрицательных чисел — количество вызовов.

Формат выходных данных: Одно целое число — номер столбца с минимальной суммой. Если таких несколько, выведите первый. Нумерация с 1.
В офисе программистов ведут учёт потребления кофе. Строки — программисты, столбцы — дни недели. Найдите номер программиста, который выпил больше всего чашек кофе за неделю.
Формат входных данных: Первая строка содержит два целых числа n и m (1 ≤ n, m ≤ 100) — количество программистов и дней. Следующие n строк содержат по m целых неотрицательных чисел — количество чашек кофе.
Формат выходных данных: Одно целое число — номер строки с максимальной суммой. Если таких несколько, выведите первую. Нумерация с 1.
В кафе "У дяди Васи" ведут учёт посетителей. Строки — недели, столбцы — дни недели (Пн-Вс). Найдите номер дня недели, когда суммарно за все недели было больше всего посетителей. 

Формат входных данных: Первая строка содержит два целых числа n и m (1 ≤ n, m ≤ 100) — количество недель и дней. Следующие n строк содержат по m целых неотрицательных чисел — количество посетителей.
Формат выходных данных: Одно целое число — номер столбца (дня недели) с максимальной суммой. Если таких несколько, выведите первый. Нумерация с 1.
Семья ходит в магазин каждую неделю. В таблице записаны расходы каждого члена семьи в каждый день похода. Строки — члены семьи, столбцы — недели. Подсчитайте, сколько денег потратила вся семья за всё время. 
Формат входных данных: Первая строка содержит два целых числа n и m (1 ≤ n, m ≤ 100) — количество членов семьи и недель. Следующие n строк содержат по m целых неотрицательных чисел — расходы в рублях.
Формат выходных данных: Одно целое число — общая сумма расходов.
Маленький Петя записывает, сколько конфет он съедает каждый день недели в течение нескольких недель. Строки — недели, столбцы — дни недели (Пн-Вс). Найдите среднее количество конфет в день (округлите вниз до целого). 
Формат входных данных: Первая строка содержит два целых числа n и m (1 ≤ n, m ≤ 100) — количество недель и дней (m ≤ 7). Следующие n строк содержат по m целых неотрицательных чисел — количество конфет.
Формат выходных данных: Одно целое число — среднее количество конфет в день (сумма всех элементов делённая на n*m, округлённая вниз).
В школе ведут учёт посещаемости занятий. Строки — ученики, столбцы — предметы. В таблице записано количество посещённых уроков. Найдите номер предмета, который пропускали чаще всего (с минимальной суммой посещений).
Формат входных данных: Первая строка содержит два целых числа n и m (1 ≤ n, m ≤ 100) — количество учеников и предметов. Следующие n строк содержат по m целых неотрицательных чисел — количество посещённых уроков.
Формат выходных данных: Одно целое число — номер столбца с минимальной суммой. Если таких несколько, выведите первый. Нумерация с 1.
Друзья заказали пиццу нескольких видов. В таблице записано, сколько кусочков каждого вида съел каждый друг. Строки — друзья, столбцы — виды пиццы. Найдите номер друга, который съел больше всего кусочков суммарно (чемпион по поеданию пиццы 🍕).
Формат входных данных: Первая строка содержит два целых числа n и m (1 ≤ n, m ≤ 100) — количество друзей и видов пиццы. Следующие n строк содержат по m целых неотрицательных чисел — количество кусочков.
Формат выходных данных: Одно целое число — номер строки с максимальной суммой. Если таких несколько, выведите первую. Нумерация с 1.
В игровом клубе записывают, сколько часов каждый игрок провёл в разных играх. Строки — игроки, столбцы — игры. Найдите номер самой популярной игры (в которую играли больше всего часов суммарно).
Формат входных данных: Первая строка содержит два целых числа n и m (1 ≤ n, m ≤ 100) — количество игроков и игр. Следующие n строк содержат по m целых неотрицательных чисел — часы игры.
Формат выходных данных: Одно целое число — номер столбца с максимальной суммой. Если таких несколько, выведите первый. Нумерация с 1.
В университете студенты сдают домашние задания. Строки — студенты, столбцы — недели. В таблице записано количество решённых задач. Найдите номер самого ленивого студента (с минимальной суммой задач за весь семестр).
Формат входных данных: Первая строка содержит два целых числа n и m (1 ≤ n, m ≤ 100) — количество студентов и недель. Следующие n строк содержат по m целых неотрицательных чисел — количество решённых задач.
Формат выходных данных: Одно целое число — номер строки с минимальной суммой. Если таких несколько, выведите первую. Нумерация с 1.
На вечеринке у Васи гости ели печеньки. В таблице записано, сколько печенек съел каждый гость в каждом раунде чаепития. Строки — гости, столбцы — раунды. Подсчитайте общее количество съеденных печенек на всей вечеринке.
Формат входных данных: Первая строка содержит два целых числа n и m (1 ≤ n, m ≤ 100) — количество гостей и раундов чаепития. Следующие n строк содержат по m целых неотрицательных чисел — количество печенек.
Формат выходных данных: Одно целое число — общее количество съеденных печенек (сумма всех элементов матрицы).

Утром Дядя Фёдор вышел на улицу и увидел цепочку следов на снегу. Он записал глубину каждого следа в сантиметрах. Дядя Фёдор хочет найти самый глубокий след, чтобы понять, кто из жителей деревни проходил мимо (чем тяжелее, тем глубже след).

Входные данные: В первой строке число N (1 ≤ N ≤ 1000) — количество следов. Во второй строке N целых чисел от 1 до 100 — глубина каждого следа.

Выходные данные: Два числа через пробел: максимальная глубина и номер следа с такой глубиной (если таких несколько, выведите номер первого). Следы нумеруются с единицы.

Дана последовательность из N чисел. Найти сумму чисел, у которых значение и позиция имеют одинаковую чётность (оба чётные или оба нечётные).

Входные данные: в первой строке вводится число N, в следующих строках вводятся N чисел (по одному числу в строке).

Выходные данные: выведите сумму чисел, для которых чётность значения совпадает с чётностью позиции (нумерация с 0).

Дано количество целых чисел n. Далее в n строках вводятся целые числа (обозначим их как x).

Для каждого введённого числа x необходимо вычислить значение функции \( f(x)=2x−5\).

Найти значение x (аргумент), при котором функция \( f(x)\) принимает максимальное значение.

Формат входных данных

  • Первая строка: целое число n (количество чисел в последовательности), где \(1 \le n \le 100\).

  • Следующие n строк: целые числа (значения x). Каждое число по модулю не превышает 105


Формат выходных данных

Два числа через пробел:

  • первое число: значение x, при котором функция \( f(x)=2x−5\) достигает своего максимума
  • второе число: максимальное значение функции \( f(x)=2x−5\).

 

В игре Fortnite игрок выполняет задания и получает V-Bucks. Но премиальные награды (больше 100 V-Bucks) идут в особый фонд для покупки редких скинов.​

Напишите программу, которая подсчитывает общую сумму полученных премиальных наград — те, где награда V-Bucks больше 100.​

Входные данные:
Первая строка: N — количество выполненных заданий (N ≤ 20)

Следующие N строк: количество V-Bucks за каждое задание (число от 0 до 500)

Выходные данные:
Сумма премиальных наград (сумма только тех чисел, которые строго больше 100)

Макс покупает скины в Roblox и записывает цену каждой покупки в робуксах. Ему нужно узнать, сколько раз он потратил больше 100 робуксов за одну покупку (дорогие покупки).​
Напишите программу, которая запрашивает у пользователя информацию (см. входные данные) и выводит ответ

Входные данные:

  • Первая строка: N — количество покупок (N <= 20)

  • Следующие N строк: по одному числу от 10 до 500 — цена покупки в робуксах

Выходные данные: количество покупок дороже 100 робуксов

В Discord-канале провели голосование за любимого персонажа из игры Brawl Stars. Участники голосовали числами от 1 до 5, где каждое число — это конкретный персонаж:

  • 1 — Шелли

  • 2 — Кольт

  • 3 — Спайк

  • 4 — Леон

  • 5 — Crow

Напишите программу, которая запрашивает у пользователя информацию (см входные данные) и подсчитывает, сколько человек проголосовало за Леона
 

Входные данные:

  • Первая строка: N — количество голосов (N <= 20)

  • Следующие N строк: по одному числу от 1 до 5 — голос участника

Выходные данные: количество голосов за Леона 

Артём играет в Standoff 2 и записывает результаты матчей: 1 — победа, 0 — поражение.

Напишите программу, которая запрашивает у пользователя необходимые данные (см входные данные) и подсчитывает количество побед.​

Входные данные:

  • Первая строка: N — количество матчей (N <= 20)

  • Следующие N строк: по одному числу (0 или 1) — результат каждого матча

Выходные данные: количество побед

На вход подается битовая строка - строка, состоящая из 0 и 1. Дополните исходную строку последним битом - битом чётности. Бит чётности равен 0, если в исходной строке чётное число единиц, и равен 1, если нечётное (в получившейся строке должно быть всегда чётное число единиц).
 
Примеры
Входные данные Выходные данные
1 00110010 001100101
Дубликаты - одинаковые строки в данных, которые могут исказить анализ.

Основные методы

df.duplicated() - находит дубликаты (возвращает True/False)
df.drop_duplicates() - удаляет дубликаты
df.nunique() - количество уникальных значений
Параметры drop_duplicates()
subset - столбцы для проверки дубликатов
keep - какую копию оставить ('first', 'last', False)
ignore_index -  пересоздает аккуратный последовательный индекс (0, 1, 2, 3, 4...).
Пример
df_clean = df.drop_duplicates()  # Удалить полные дубликаты
df_partial = df.drop_duplicates(subset=['name'])  # По имени
df_last = df.drop_duplicates(keep='last')  # Оставить последний

Задание

1) Посчитайте количество полных дубликатов в прикрепленном датасете (программа должна вывести целое число)
2) Удалите все полные дубликаты и выведите размер получившегося датасета.

Пропущенные значения (NaN, None, NULL) - одна из главных проблем при анализе данных.

Поиск пропусков

df.isnull() - находит пропуски
df.isnull().sum() - считает пропуски по столбцам

 

Задание

Проанализируйте датасет супергероев, считав его из прикрепленного файла
Напишите программу, который ищет пропуски. Выведите

  1. В первой строке - количество пропусков в каждом столбце (семь целых чисел через пробел)
  2. Во второй строке - процент пропущенных значений (отбросив дробную часть) для каждого столбца  (семь целых чисел через пробел)
Числа должны быть в порядке перечисления столбцов в датасете.

Пример вывода (пример дан для понимания формата вывода):
1 2 3 2 1 1 4
10 20 30 20 10 10 40
Поделиться
Класснуть