Создайте Python-скрипт, который читает большой CSV-файл построчно, фильтрует строки по заданному критерию и подсчитывает агрегированные данные на основе указанного столбца. Скрипт должен эффективно обрабатывать файл, используя потоковое чтение (без загрузки файла целиком в память) и выводить итоговую статистику в консоль.
•
python process_data.py data.csv age 30
— фильтрует строки, где значение в столбце age
больше 30
, и подсчитывает общее количество таких записей и среднее значение в другом числовом столбце, например, salary
.Решение задачи
import csv
import sys
def process_large_csv(file_path, filter_column, threshold, aggregate_column):
count = 0
total_sum = 0.0
with open(file_path, 'r', encoding='utf-8') as file:
reader = csv.DictReader(file)
for row in reader:
# Преобразование значений для фильтрации и агрегации
try:
filter_value = float(row[filter_column])
aggregate_value = float(row[aggregate_column])
except ValueError:
continue # Пропускаем строки с некорректными данными
# Фильтрация строк по заданному условию
if filter_value > threshold:
count += 1
total_sum += aggregate_value
# Вывод итоговой статистики
if count > 0:
average = total_sum / count
print(f"Обработано записей: {count}")
print(f"Среднее значение {aggregate_column} для записей, где {filter_column} > {threshold}: {average:.2f}")
else:
print("Записи, соответствующие условиям фильтрации, не найдены.")
if __name__ == "__main__":
if len(sys.argv) < 5:
print("Использование: python process_data.py <file_path> <filter_column> <threshold> <aggregate_column>")
sys.exit(1)
file_path = sys.argv[1]
filter_column = sys.argv[2]
threshold = float(sys.argv[3])
aggregate_column = sys.argv[4]
process_large_csv(file_path, filter_column, threshold, aggregate_column)
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡3❤2
• Построение базы знаний компании и поиска документов на LLM и RAG
• Что побуждает LLM врать и как этого избежать в своих продуктах
• Ломаем капчу 4Chan
• На чём учатся современные модели машинного перевода: опыт команды Яндекс Переводчика
• Gemini вырывается вперед, Китай спамит моделями, в Minecraft запустили AI-агентов: главные события ноября в сфере ИИ
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡2❤1
Автор исследует, почему нейросети пока плохо отличают ИИ-тексты от человеческих, и делится, что реально работает (или не очень), если вы вдруг решите их «перехитрить».
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡1❤1
Обновил библиотеку, всё сломалось, и теперь ты в дебаге на два часа? Классика.
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡2❤1
RDS — это про то, как машинке выбрать лучший вариант уведомления или карточки, чтобы ты вернулся. Объясняем, как он усиливает ML-модели и растит вовлечённость пользователей.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5⚡1
Автор копает, почему ИИ фантазирует, как это мешает в работе и чем тут помогут промпты. В финале — гайд, как писать запросы без сюрпризов.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡3❤1
У вас есть список действий пользователей на платформе. Каждое действие представлено словарём с полями
"user_id"
, "action"
, и "timestamp"
. Нужно реализовать функцию, которая определит, является ли пользователь "уникальным".Уникальный пользователь — это тот, кто:
• совершал более 3 действий,
• все действия происходили в разные дни,
• не совершал одинаковые действия дважды.
Верните список
user_id
, соответствующих этому критерию.Решение задачи
from collections import defaultdict
from datetime import datetime
def find_unique_users(logs):
activity = defaultdict(lambda: {"actions": set(), "days": set(), "count": 0})
for log in logs:
user = log["user_id"]
action = log["action"]
date = datetime.fromisoformat(log["timestamp"]).date()
activity[user]["actions"].add(action)
activity[user]["days"].add(date)
activity[user]["count"] += 1
result = []
for user, data in activity.items():
if (
data["count"] > 3 and
len(data["days"]) == data["count"] and
len(data["actions"]) == data["count"]
):
result.append(user)
return result
# Пример использования
logs = [
{"user_id": 1, "action": "login", "timestamp": "2023-05-01T10:00:00"},
{"user_id": 1, "action": "view", "timestamp": "2023-05-02T11:00:00"},
{"user_id": 1, "action": "click", "timestamp": "2023-05-03T12:00:00"},
{"user_id": 1, "action": "logout", "timestamp": "2023-05-04T13:00:00"},
{"user_id": 2, "action": "login", "timestamp": "2023-05-01T10:00:00"},
{"user_id": 2, "action": "login", "timestamp": "2023-05-01T11:00:00"},
{"user_id": 2, "action": "click", "timestamp": "2023-05-01T12:00:00"},
]
print(find_unique_users(logs)) # Ожидаемый результат: [1]
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡2❤2
История о том, как в текущем моменте истории, по сути любой разработчик может в одиночку задизраптить любой вертикальный рынок и даже отрасль.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3⚡2
Сравниваем 4 синтеза речи: интонации, паузы, эмоции. Кто из них справится с «Хоббитом» и сможет звучать как рассказчик, а не как робот? Проверим голосом, а не графиком.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2⚡2
argparse
в Python?argparse
— это стандартный модуль Python для работы с аргументами командной строки. Он позволяет удобно разбирать, валидировать и документировать входные параметры.import argparse
# Создаём парсер аргументов
parser = argparse.ArgumentParser(description="Пример работы с argparse")
parser.add_argument("--name", type=str, help="Имя пользователя")
parser.add_argument("--age", type=int, help="Возраст пользователя")
# Разбираем аргументы
args = parser.parse_args()
# Используем аргументы
print(f"Привет, {args.name}! Тебе {args.age} лет.")
🗣️ В этом примере argparse разбирает аргументы --name и --age, переданные через командную строку. Это упрощает создание CLI-приложений.
Please open Telegram to view this post
VIEW IN TELEGRAM
Python documentation
argparse — Parser for command-line options, arguments and subcommands
Source code: Lib/argparse.py Tutorial: This page contains the API reference information. For a more gentle introduction to Python command-line parsing, have a look at the argparse tutorial. The arg...
⚡2❤1
START — опенсорсная LLM для точных вычислений и проверки кода. В START решены две главные проблемы большинства обычных моделей: галлюцинации и ошибки в многоэтапных расчетах. В статье разберемся, зачем и как именно эти проблемы решены..
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3⚡3🔥1
Разбираемся, зачем нужен объяснимый ИИ, как подступиться к интерпретации моделей и что с этим делать на практике — от EDA до XAI на примере. Всё на русском, без магии.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡2❤1🔥1
Вам дана матрица признаков — список списков, где каждая строка представляет собой объект, а каждый столбец — отдельный числовой признак.
Ваша задача — определить, какие признаки можно считать стабильными.
Стабильный признак — это признак, у которого стандартное отклонение по всем объектам меньше заданного порога threshold.
Реализуйте функцию
find_stable_features(matrix, threshold)
, которая возвращает список индексов признаков (столбцов), удовлетворяющих этому условию.Решение задачи
import numpy as np
def find_stable_features(matrix, threshold=0.1):
data = np.array(matrix)
stds = np.std(data, axis=0)
stable_indices = [i for i, std in enumerate(stds) if std < threshold]
return stable_indices
# Пример входных данных
X = [
[1.0, 0.5, 3.2],
[1.0, 0.49, 3.1],
[1.0, 0.52, 3.0],
[1.0, 0.5, 3.3],
]
print(find_stable_features(X, threshold=0.05))
# Ожидаемый результат: [0, 1]
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2⚡1
• Всё, что вы хотели знать о Django Channels
• Сборка Python проекта с uv и Docker
• DE-1. DIY ассистент на LLM
• Ваши генераторные выражения сломаны: чиним и разбираемся
• Всё, что вы хотели знать о Django Channels
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3⚡1
Когда митапов больше, чем решений, пора что-то менять. Мы выработали способ делать онлайн-созвоны короче, полезнее и без «а что мы вообще решили?». Делюсь, как именно.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡3❤1
• Эволюция архитектур нейросетей в компьютерном зрении: сегментация изображений
• Заяц не вырастет в акулу. Или секреты гибкой инженерной культуры от Александра Бындю
• Все, пора увольняться: что я поняла после работы в токсичных командах
• Базовое программирование, или Почему джуны не могут пройти к нам собеседование
• Я стал аналитиком, потому что не смог быть программистом
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1⚡1
В статье показали, как делали ИИ-помощника на RAG для юристов внутри компании: с какими проблемами столкнулись, как прокачивали точность ответов и экономили память на видеокартах.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡3❤1
В статье проверяют, как Yandex GPT в голосовом ассистенте ведёт себя с персональными данными. Узнают, что он сливает номер телефона и личную инфу, а потом делает вид, что ничего не знает.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡2👎2❤1😁1
StandardScaler
из библиотеки scikit-learn
— это инструмент для нормализации данных. Он приводит признаки (столбцы данных) к одному масштабу со средним значением 0 и стандартным отклонением 1.Это важно для алгоритмов машинного обучения, чувствительных к масштабу данных — например, линейной регрессии, SVM или KMeans.
from sklearn.preprocessing import StandardScaler
import numpy as np
X = np.array([[10, 200],
[20, 300],
[30, 400]])
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
print(X_scaled)
🗣️ В этом примере значения всех признаков преобразуются так, что каждый столбец имеет среднее значение 0 и одинаковый масштаб. Это ускоряет обучение и повышает качество модели.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3⚡2
Центральный университет запустил гибридную магистратуру, где занятия онлайн, но есть и живые буткемпы в Москве, причем ребятам из регионов проживание оплачивает вуз. Студенты будут работать над реальными задачами компаний под руководством экспертов индустрии: ведущих дата сайентистов, профессоров, аналитиков и главных тренеров школьной сборной России, победившей в мировой олимпиаде по ИИ в Болгарии.
📌В программе обучения: актуальные ML-инструменты, командная работа, вечерние занятия в мини-группах. Есть гранты до 75%, очный диплом и отсрочка от армии.
Начало в сентябре, заявки принимаются до 20 августа.
Please open Telegram to view this post
VIEW IN TELEGRAM
👎4❤2🔥2👍1🐳1