Реальные данные – это шумно. Но в качестве ученого данных вам платят, чтобы избавиться от шума, сделать данные доступными и создавать значение. Таким образом, фильтрация данных имеет жизненно важно для реальных научных задач данных.
В этой статье вы узнаете, как создать минимальную функцию фильтра в одной строке кода. Я сначала даю вам код и объясню основы позже.
# Option 1 my_list = [x for x in my_list if x.attribute == value] # Option 2 my_list = filter(lambda x: x.attribute == value, my_list)
А Популярные Pustoverflow Ответ обсуждает, какие из решений лучше. На мой взгляд, первый вариант лучше, потому что понимание списка очень эффективно, нет никаких вызовов функций, и у него есть меньше персонажей. 🤓.
Но это только мое мнение. Прокомментируйте свое мнение в конце статьи!
Основы
Так как создать функцию в одной строке? Функция лямбда твой друг! Функции лямбда – это анонимные функции, которые могут быть определены в одной строке кода. Если вы хотите узнать больше о функциях Lambda, ознакомьтесь с этой 3-минутной статьей.
lambda:
Вы определяете разделенный запятыми список аргументов, которые служат входным. Функция лямбда затем оценивает выражение и возвращает результат выражения.
Без дальнейшего обсуждения оснований, давайте рассмотрим, как решить следующую проблему науки о данных, создав функцию фильтра, используя определение функции лямбда.
Код
Рассмотрим следующую проблему: «Создайте функцию фильтра, которая принимает список книг X и минимальный рейтинг Y и возвращает список потенциальных бестселлеров, которые имеют выше, чем минимальный рейтинг Y ‘> Y.
## Dependencies import numpy as np ## Data (row = [title, rating]) books = np.array([['Coffee Break NumPy', 4.6], ['Lord of the Rings', 5.0], ['Harry Potter', 4.3], ['Winnie Pooh', 3.9], ['The Clown of God', 2.2], ['Coffee Break Python', 4.7]]) ## One-liner predict_bestseller = lambda x, y : x[x[:,1].astype(float) > y] ## Results print(predict_bestseller(books, 3.9))
Угадайте, что вывод этого кода фрагмент?
Результат
Данные состоят из двумерного применения Numpy, где каждая строка содержит название заголовка книги и средний рейтинг пользователя (номер с плавающей запятой от 0,0 до 5,0). В наборе номинальных данных есть шесть разных книг.
Цель состоит в том, чтобы создать функцию фильтра, которая принимает в качестве ввода такую рейтинг книги набор данных x и пороговой рейтинг Y и возвращает последовательность книг, чтобы книги имеют более высокий рейтинг, чем порог y.
Одноклассник достигает этой цели, определив анонимную функцию лямбда, которая просто возвращает результат следующего выражения:
x[x[:,1].astype(float) > y]
Предполагается, что массив «X» имеет форму, такую форму, как наша рейтинговая книга «Книги».
Во-первых, мы выделяем второй столбец, который удерживает рейтинги книги и преобразует ее на массив поплавка, используя метод ASTYPE (FLOAT) на Numpy Array «X». Это необходимо, потому что начальный массив «X» состоит из смешанных типов данных (поплавок и струн).
Во-вторых, мы создаем логический массив, который содержит значение «True», если книга в соответствующем индексе строки имеет рейтинг больше, чем «Y». Обратите внимание, что поплавок «y» неявно транслируется на новой Numpy Array, чтобы обе операнды логического оператора «>» имеют одинаковую форму.
В-третьих, мы используем логическое массив в качестве массива индексации в исходном массиве рейтинга книги, чтобы вырезать все книги, которые имеют более пороговые рейтинги.
Результатом этого одноклассника является следующий массив:
## Results print(predict_bestseller(books, 3.9)) """ [['Coffee Break NumPy' '4.6'] ['Lord of the Rings' '5.0'] ['Harry Potter' '4.3'] ['Coffee Break Python' '4.7']] """
Финальные ноты
Эта статья основана на книге «Coffe Break Numpy», который я соавторен в 2019 году. Он использует научно проверенный метод обучения под названием «обучение на основе головоломки». Решив Numpy Puzzles, вы улучшите свои навыки Numpy и узнаете о своем истинном уровне навыков по сравнению с другими кодерами. Проверьте это, это весело!
Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.
Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.
Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.