Сегодня разберем довольно частую задачу на собеседованиях:
Необходимо объединить два словаря в один. Довольно частая проблема, которая встречается в работе, например для объединения двух разных источников данных.
Для решения есть два варианта:
1. Для Python 3.9.
2. Для Python 3.5.
В результате Python объединяет ключи словаря в порядке, указанном в выражении, перезаписывая дубликаты слева направо.
В следующем посте разберем задачи из новой рубрики на собеседованиях “Pandas-программист”. Интересующие вопросы задавайте в комментариях! #python #собеседование #словари
Необходимо объединить два словаря в один. Довольно частая проблема, которая встречается в работе, например для объединения двух разных источников данных.
x = {'a': 1, 'b': 2}
y = {'b': 3, 'c': 4}Для решения есть два варианта:
1. Для Python 3.9.
z = x | y
2. Для Python 3.5.
z = {**x, **y}В результате Python объединяет ключи словаря в порядке, указанном в выражении, перезаписывая дубликаты слева направо.
{'a': 1, 'b': 3, 'c': 4}В следующем посте разберем задачи из новой рубрики на собеседованиях “Pandas-программист”. Интересующие вопросы задавайте в комментариях! #python #собеседование #словари
👍12❤4👏1
Внимание, друзья! 🎓
Сегодня поговорим о словарях Python! 🐍📚
🤔 Вам когда-нибудь требовалось хранить данные таким образом, чтобы к ним было легко получить доступ или изменить их? В таком случае пригодятся словари!
🔑 Словари похожи на систему хранения, где вы по слову (ключ) находите его определение (значение).
📝 Вот пример того, как создать словарь на Python:
🍎,🍌,🍊 В этом примере у нас есть три ключа (яблоко, банан и апельсин) с соответствующими им значениями (2, 3 и 1).
🔍 Чтобы получить доступ к значению, используй ключ следующим образом:
🔄 Чтобы изменить значение, просто присвой ключу новое значение:
🗑️ Чтобы удалить пару ключ-значение, используй ключевое слово del:
⚡ Вызывает ли работа со словарями у тебя сложности, если да, то задавай вопросы в комментариях!
💻 Если показалось очень легко, то в следующем посте разберем более сложные манипуляции!
#python #словари
Сегодня поговорим о словарях Python! 🐍📚
🤔 Вам когда-нибудь требовалось хранить данные таким образом, чтобы к ним было легко получить доступ или изменить их? В таком случае пригодятся словари!
🔑 Словари похожи на систему хранения, где вы по слову (ключ) находите его определение (значение).
📝 Вот пример того, как создать словарь на Python:
my_dict = {"яблоко": 2, "банан": 3, "апельсин": 1}🍎,🍌,🍊 В этом примере у нас есть три ключа (яблоко, банан и апельсин) с соответствующими им значениями (2, 3 и 1).
🔍 Чтобы получить доступ к значению, используй ключ следующим образом:
my_dict["яблоко"]
# Output: 2
🔄 Чтобы изменить значение, просто присвой ключу новое значение:
my_dict["банан"] = 4
my_dict["банан"]
# Output: 4
🗑️ Чтобы удалить пару ключ-значение, используй ключевое слово del:
del my_dict["апельсин"]
my_dict
Output: {"яблоко": 2, "банан": 4}
⚡ Вызывает ли работа со словарями у тебя сложности, если да, то задавай вопросы в комментариях!
💻 Если показалось очень легко, то в следующем посте разберем более сложные манипуляции!
#python #словари
🔥10❤3👏2
Всем привет! Сегодня продолжим тему словарей и разберем более сложные случаи!
Такие примеры часто встречаются на собеседованиях в части Python.
🔍 Использование метода get()
Метод get() является полезным инструментом при работе со словарями. Он позволяет получить доступ к значению для данного ключа, и если ключ не найден, он возвращает значение по умолчанию.
В этом примере у нас есть список чисел, и мы хотим найти все дубликаты и создать словарь, где ключами являются уникальные числа, а значениями - их частота в списке.
В этом примере мы имитируем бросание игральной кости 100 раз и подсчитываем, сколько раз появляется каждый результат. Мы используем словарь, чтобы отслеживать подсчеты.
Вы можете создать словарь из двух списков, где один список содержит ключи, а другой - значения. Вот пример:
#python #собеседование #словари
Такие примеры часто встречаются на собеседованиях в части Python.
🔍 Использование метода get()
Метод get() является полезным инструментом при работе со словарями. Он позволяет получить доступ к значению для данного ключа, и если ключ не найден, он возвращает значение по умолчанию.
my_dict = {"apple": 2, "banana": 3, "orange": 1}
my_dict.get("apple", 0)
# Output: 2
my_dict.get("kiwi", 0)
# Output: 0
🧹 Нахождение дубликатов (словарное включение)В этом примере у нас есть список чисел, и мы хотим найти все дубликаты и создать словарь, где ключами являются уникальные числа, а значениями - их частота в списке.
numbers = [1, 2, 2, 3, 4, 4, 4, 5, 6, 6, 7]🎲 Подсчет бросаний кубика со словарем
unique_numbers = {num: numbers.count(num) for num in numbers}
print(unique_numbers)
# Output: {1: 1, 2: 2, 3: 1, 4: 3, 5: 1, 6: 2, 7: 1}
В этом примере мы имитируем бросание игральной кости 100 раз и подсчитываем, сколько раз появляется каждый результат. Мы используем словарь, чтобы отслеживать подсчеты.
import random🔑 Создание словаря из двух списков
rolls = [random.randint(1, 6) for _ in range(100)]
counts = {}
for roll in rolls:
counts[roll] = counts.get(roll, 0) + 1
print(counts)
# Output: {1: 16, 2: 18, 3: 18, 4: 21, 5: 15, 6: 12}
Вы можете создать словарь из двух списков, где один список содержит ключи, а другой - значения. Вот пример:
keys = ['apple', 'banana', 'orange']В следующем посте разберем другие методы словарей и как их использовать для решения задач!
values = [2, 3, 1]
my_dict = dict(zip(keys, values))
print(my_dict)
# Output: {'apple': 2, 'banana': 3, 'orange': 1}
#python #собеседование #словари
🔥9❤8👏2
📊🔎🤖 Всем привет, сегодня будем решать задачи с собеседований! Продолжая наше обсуждение словарных методов, давайте взглянем на dictionary comprehension (словарное включение). Словарное включение - это краткий и мощный способ создания словарей на Python.
📝 Словарное включение выполняется по синтаксису, аналогичному списковому включению, но с использованием пар ключ-значение вместо отдельных значений. Вот пример:
🧐 Словарное включение может быть использовано для решения самых разных задач. Вот несколько примеров:
🔍 Задача 1: Преобразуйте список строк в словарь, где ключом является строка, а значением - длина строки.
🔍 Задача 2: Отфильтруйте словарь, чтобы он включал только пары ключ-значение, в которых значение больше 5.
🔍 Задача 3: Создайте словарь, использую словарное включение, на основе списка из чисел, где ключом является число, а его значением квадрат числа!
Если получится решить, то присылай свой код в комментарии, а если нет, то задавай вопросы и всей командой поможем тебе!
#собеседование #python #словари #задача
📝 Словарное включение выполняется по синтаксису, аналогичному списковому включению, но с использованием пар ключ-значение вместо отдельных значений. Вот пример:
my_dict = {key: value for key, value в iterable}🧐 Словарное включение может быть использовано для решения самых разных задач. Вот несколько примеров:
🔍 Задача 1: Преобразуйте список строк в словарь, где ключом является строка, а значением - длина строки.
my_list = ['apple', 'banana', 'cherry']
my_dict = {string: len(string) for string in my_list}
print(my_dict)
# Output: {'apple': 5, 'banana': 6, 'cherry': 6}🔍 Задача 2: Отфильтруйте словарь, чтобы он включал только пары ключ-значение, в которых значение больше 5.
my_dict = {'apple': 3, 'banana': 6, 'cherry': 2, orange: 8}
filtered_dict = {key: value for key, value in my_dict.items() if value > 5}
print(filtered_dict)
# Output: {'banana': 6, orange: 8}🔍 Задача 3: Создайте словарь, использую словарное включение, на основе списка из чисел, где ключом является число, а его значением квадрат числа!
numbers = [1, 2, 3, 4, 5]
squares_dict = {место для кода}
# Output {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}Если получится решить, то присылай свой код в комментарии, а если нет, то задавай вопросы и всей командой поможем тебе!
#собеседование #python #словари #задача
🔥9👍7🥰1
📊Всем привет! Сегодня будет новый формат, где мы по шагам разберем решение рабочей задачи с моими комментариями!
♻А также применим наши знания о словарях из предыдущих постов и познакомимся с новой структурой данных в Python - множества (set).
📝 Если хочешь испытать себя, то реши задачу самостоятельно, пришли решение в комментарии и сравни с моим!
🔍 Задача! Есть список со словарями и нам необходимо найти все уникальные ключи:
💯Решение:
1. Первое, что приходит на ум, это создать цикл и пройтись по списку:
2. Далее, нам необходимо получить доступ к ключам каждого словаря, это можно сделать с помощью метода .keys():
3. Теперь, хотелось бы сохранить эти ключи в список, для этого создадим пустой список result и с помощью метода .extend() добавим ключи:
4. На данном этапе у нас есть список со всеми значениями ключей из словарей и необходимо оставить только уникальные, для этого можно использовать структуру данных Python - множества (set), в которой могут быть только уникальные значения:
🐥Вот такое решение у меня получилось в первом приближение, есть идеи переписать это полностью с использованием множеств и метода .update().
🐊В следующих постах более подробно расскажу множествах и как использовать их в работе и для решения задач на собеседованиях!
👉 Обязательно задавайте вопросы и присылайте свои решения!
🗿Понравился ли такой формат?
#python #словари #множества #работа
♻А также применим наши знания о словарях из предыдущих постов и познакомимся с новой структурой данных в Python - множества (set).
📝 Если хочешь испытать себя, то реши задачу самостоятельно, пришли решение в комментарии и сравни с моим!
🔍 Задача! Есть список со словарями и нам необходимо найти все уникальные ключи:
arr = [{'a': 1, 'b': 2},
{'a': 3, 'b': 4},
{'c': 5}]
💯Решение:
1. Первое, что приходит на ум, это создать цикл и пройтись по списку:
for i in arr:
pass
2. Далее, нам необходимо получить доступ к ключам каждого словаря, это можно сделать с помощью метода .keys():
for i in arr:
i.keys()3. Теперь, хотелось бы сохранить эти ключи в список, для этого создадим пустой список result и с помощью метода .extend() добавим ключи:
result = []
for i in arr:
result.extend(i.keys())
print(result)
#Output ['a', 'b', 'a', 'b', 'c']4. На данном этапе у нас есть список со всеми значениями ключей из словарей и необходимо оставить только уникальные, для этого можно использовать структуру данных Python - множества (set), в которой могут быть только уникальные значения:
result = []
for i in arr:
result.extend(i.keys())
result = set(result)
print(result)
#Output ['a','c','b']🐥Вот такое решение у меня получилось в первом приближение, есть идеи переписать это полностью с использованием множеств и метода .update().
🐊В следующих постах более подробно расскажу множествах и как использовать их в работе и для решения задач на собеседованиях!
👉 Обязательно задавайте вопросы и присылайте свои решения!
🗿Понравился ли такой формат?
#python #словари #множества #работа
❤9🔥9👏3
📊 Давайте поговорим о структуре данных в Python - множество (set) 🐍
🤔 Что такое множество?
Множество - это неупорядоченная коллекция уникальных элементов. Проще говоря, это похоже на список, но без дубликатов.
🤓 Вот некоторые методы множества:
add() - добавляет элемент в набор
remove() - удаляет элемент из набора
intersection() - возвращает пересечение двух наборов
union() - возвращает объединение двух наборов
👨💻 Вот пример кода:
🎉 Множества являются полезным инструментом при анализе данных, поскольку они позволяют нам легко удалять дубликаты и выполнять операции на много быстрее, чем со списками. Поэтому в следующий раз, когда вы столкнетесь с дублирующимися данными, попробуйте использовать множества!
❓Вопрос: что будет если с помощью метода .add() добавить в множество уже имеющийся элемент? Пиши ответ в комментариях! В следующем посте раберем на сколько множество быстрее, чем списки!
#python #множества #set
🤔 Что такое множество?
Множество - это неупорядоченная коллекция уникальных элементов. Проще говоря, это похоже на список, но без дубликатов.
🤓 Вот некоторые методы множества:
add() - добавляет элемент в набор
remove() - удаляет элемент из набора
intersection() - возвращает пересечение двух наборов
union() - возвращает объединение двух наборов
👨💻 Вот пример кода:
# Создаем 2 множества
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
print(set1) # Output: {1, 2, 3, 4, 5}
print(set2) # Output: {4, 5, 6, 7, 8}
# Добавим элемент в set1
set1.add(6)
print(set1) # Output: {1, 2, 3, 4, 5, 6}
# Удлаим элемент из set2
set2.remove(8)
print(set2) # Output: {4, 5, 6, 7}
# Найдем пересечение set1 и set2
intersection_set = set1.intersection(set2)
print(intersection_set) # Output: {4, 5, 6}
# Найдем уникальные значения set1 and set2
union_set = set1.union(set2)
print(union_set) # Output: {1, 2, 3, 4, 5, 6, 7}🎉 Множества являются полезным инструментом при анализе данных, поскольку они позволяют нам легко удалять дубликаты и выполнять операции на много быстрее, чем со списками. Поэтому в следующий раз, когда вы столкнетесь с дублирующимися данными, попробуйте использовать множества!
❓Вопрос: что будет если с помощью метода .add() добавить в множество уже имеющийся элемент? Пиши ответ в комментариях! В следующем посте раберем на сколько множество быстрее, чем списки!
#python #множества #set
👍10🔥8❤1
📣 Всем привет! 🐍
Я хотел поделиться классной встроенной функцией в Python, которая может помочь Вам писать более эффективный код: 🔍
👉
👉
👉
👉
Вот пример использования
Какие еще способы применения функции 🔍
Также сообщаю, что мы с @dianakoloda, Head of HR DataGo!, записали видео с ответами на Ваши вопросы и скоро его можно будет посмотреть!
#python
Я хотел поделиться классной встроенной функцией в Python, которая может помочь Вам писать более эффективный код: 🔍
range().
👉
range()- это удобная функция для генерации последовательности чисел. Она обычно используется в циклах
forдля выполнения итерации определенное количество раз. Вот пример:
for i in range(5):Функция
print(i)
Output: 0 1 2 3 4
range()принимает до трех аргументов:
start,
stopи
step.
👉
start(необязательно) — это первое значение последовательности. Если не указано, то по умолчанию значение равно 0.
👉
stop(обязательно) – это конечное значение последовательности. Это значение не включено в последовательность.
👉
step(необязательно) — это разница между каждым значением в последовательности. Если не указано, то по умолчанию значение равно 1.
Вот пример использования
range()со всеми тремя параметрами для генерации последовательности четных чисел от 2 до 10:
for i in range(2, 11, 2):Вы также можете использовать параметр
print(i)
Output: 2 4 6 8 10
stepдля изменения списка в обратном направлении, установив для него значение -1. Например:
my_list = [1, 2, 3, 4, 5]В следующих постах мы познакомимся с еще некоторыми встроенными функциями: 🧐
reversed_list = my_list[::-1] # using slicing
print(reversed_list)
Output: [5, 4, 3, 2, 1]
# Используя range
reversed_list = []
for i in range(len(my_list)-1, -1, -1):
reversed_list.append(my_list[i])
print(reversed_list)
Output: [5, 4, 3, 2, 1]
enumerateи 🗺
map.
Какие еще способы применения функции 🔍
range()вы знаете?
Также сообщаю, что мы с @dianakoloda, Head of HR DataGo!, записали видео с ответами на Ваши вопросы и скоро его можно будет посмотреть!
#python
❤17🥰16🎉8🤩6
👋 Всем привет! Сегодня разберем циклы в
⏰ Цикл повторяет определенную задачу снова и снова, пока он не получит команду остановиться.
🤔 Но как мы сообщаем циклу, когда нужно остановиться?
🤖 Цикл
👦🏼 Например, вы хотите сосчитать от 1 до 10:
🚶Теперь давайте поговорим о циклах
🍎 Например, предположим, у вас есть список фруктов, и вы хотите вывести каждый фрукт в списке:
🤔 Итак, подведем итог: циклы
👋 Вот домашнее задание для закрепления материала:
🧐 Задача: Напишите код на
Выберете какой цикл использовать и объясните почему!
В следующих постах подробно разберем примеры использования того или иного цикла и сравним их с точи зрения скорости выполнения.
#python #циклы
Python: while и for! 🐍⏰ Цикл повторяет определенную задачу снова и снова, пока он не получит команду остановиться.
🤔 Но как мы сообщаем циклу, когда нужно остановиться?
🤖 Цикл
while будет работать до тех пор, пока выполняется определенное условие.👦🏼 Например, вы хотите сосчитать от 1 до 10:
count = 1
while count <= 10:
print(count)
сount = count + 1
Этот цикл будет выполняться до тех пор, пока count будет меньше или равно 10. Он будет выводить значение count каждый раз в цикле, а затем добавлять 1 к count. Когда количество достигает 11, условие count <= 10 больше не выполняется, и цикл останавливается.🚶Теперь давайте поговорим о циклах
for. Цикл for используется для перебора последовательности элементов, например таких как список или строка.🍎 Например, предположим, у вас есть список фруктов, и вы хотите вывести каждый фрукт в списке:
fruits = ['яблоко', 'банан', 'вишня']
for fruit in fruits:
print(fruit)
Этот цикл пройдется по каждому элементу в списке фруктов и напечатает его. Переменная fruit используется для представления каждого элемента по очереди.🤔 Итак, подведем итог: циклы
while продолжают выполняться до тех пор, пока условие истинно, а циклы for повторяют последовательность элементов.👋 Вот домашнее задание для закрепления материала:
🧐 Задача: Напишите код на
Python, который выводит первые 10 четных чисел. Выберете какой цикл использовать и объясните почему!
В следующих постах подробно разберем примеры использования того или иного цикла и сравним их с точи зрения скорости выполнения.
#python #циклы
👍6🥰6 1
📢 Аналитики, привет! Кто-то сталкивался с проблемой, что нужно посчитать количество повторений элемента в списке? Или узнать какие элементы повторяются больше всего раз? Для решения данной задачи можно написать свою собственную функцию или можно воспользоваться встроенным модулем
🧮 Объект
⚖️ Подробное сравнение на 60 000 элементах в комментариях!
#python
Collections и объектом Counter. 🧮 Объект
Counter позволяет нам подсчитывать количество каждого элемента и возвращает словарь с результатами:
# импортируем библиотеку
from collections import Counter
# создаем список со значениями
lst = ['apple', 'banana', 'orange', 'apple', 'apple', 'orange']
# создаем объект
cnt = Counter(lst)
print(cnt)
Output: Counter({'apple': 3, 'orange': 2, 'banana': 1})
# для вывода только 2 самых распространенных элементов
print(cnt.most_common(2))
Output: [('apple', 3), ('orange', 2)]
👩🏭Но как насчет производительности? Давайте сравним метод Counter с решением на Python, используя timeit:d = {}
for elem in lst:
d[elem] = d.get(elem, 0) + 1
print(d)
Output: {'apple': 3, 'banana': 1, 'orange': 2}
🔎 Результат мы получим одинаковый, но в плане скорости выполнения Counter работает в разы быстрее, чем даже самое эффективное решение на чистом Python. ⚖️ Подробное сравнение на 60 000 элементах в комментариях!
#python
🔥13👍6
📹 Вчера в видео мы затронули такую сущность как массивы
numpy. Разберем в чем их отличия от списка в Python. 📊 Списки - это встроенная структура данных в
Python, которая может содержать разнородные элементы любого типа. Давайте рассмотрим пример создания списка:my_list = [1, 2, 3, 'a', 'b', 'c']
🔢 Массивы numpy являются фундаментальной структурой данных в научных вычислениях и специально разработаны для числовых операций. Они однородны по своей природе, что означает, они могут содержать только элементы одного и того же типа данных. Вот пример создания массива numpy:import numpy as np
my_array = np.array([1, 2.5, 3])
array([1., 2.5, 3.])
my_array.dtype
dtype('float64')🧮 Как мы видим,
numpy автоматически переводит из формата int64 в float64 целиком весь массив, даже если хотя бы один элемент является float64 - однородность это цена, которую приходится заплатить за скорость. 🎯 Еще одно ключевое отличие заключается в том, что массивы допускают поэлементные операции:
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
result = arr1 * arr2
print(result)
# Output: [4, 10, 18]
🤔 Напротив, выполнение поэлементных операций со списками потребовало бы перебора каждого элемента, что медленнее и не так лаконично. 🔭 Еще одной полезной функцией массивов
numpy является broadcasting, которая позволяет выполнять операции между массивами различной формы:import numpy as np
arr = np.array([1, 2, 3])
result = arr * 2
print(result) # Output: [2, 4, 6]
📝 Таким образом, в то время как списки являются структурой данных общего назначения в Python, массивы numpy специально разработаны для вычислений и обеспечивают лучшую производительность и функциональность. Однако, если вам нужно хранить элементы разных типов, то придется использовать списки. 🏠 Попробуйте повторить поэлементные операции и broadcasting с помощью списка
Python и присылайте резудьтаты в комментарии. 🏎️ В следующих постах отдельно разберем индексацию и сравним скорость работы разных методов.
💬 Есть хотите обсудить аналитику данных, попросить совета по резюме, поделиться тестовыми или просто задать интересующие вопросы, то присоединяйтесь к нашему чату.
#numpy #python
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Аналитические Важности: Pandas 2.0, AutoProfiler, API Hacking, Валидация, Aha! 23, Обзор баз данных
Аналитические важности - видеоподкаст о технологиях, трендах и событиях мира аналитики
Гаврилов Алексей - @onlyanalyst
Группа в Telegram - @onlyanalystgroup
Евгений Сафиулин - @J_e_snow
К сожалению, ссылки пока не могу прикрепить к описанию в видео, поэтому…
Гаврилов Алексей - @onlyanalyst
Группа в Telegram - @onlyanalystgroup
Евгений Сафиулин - @J_e_snow
К сожалению, ссылки пока не могу прикрепить к описанию в видео, поэтому…
❤13👍5
👋 Всем привет!
🔢 Сегодня сравним все возможные способы возведения списка в квадрат в
🦄 Во-первых, создадим список:
🌈 Теперь рассмотрим различные способы возведения списка в квадрат:
1️⃣ Цикл
2️⃣ Списковое включение:
3️⃣ Функция
4️⃣ Массив
🏁 Массив
✒️ Как Вам такие питоновские гонки? Что еще было бы интересно Вам сравнить? Какие способы возведения списка в квадрат Вы еще знаете?
🏠 В качестве задания попробуйте использовать не метод
#numpy #python
🔢 Сегодня сравним все возможные способы возведения списка в квадрат в
Python 🐍🦄 Во-первых, создадим список:
my_list = [1, 2, 3, 4, 5]🌈 Теперь рассмотрим различные способы возведения списка в квадрат:
1️⃣ Цикл
for и метод append():squared_list = []
for num in my_list:
squared_list.append(num ** 2)2️⃣ Списковое включение:
squared_list = [num ** 2 for num in my_list]3️⃣ Функция
map():
squared_list = list(map(lambda num: num ** 2, my_list))
4️⃣ Массив
numpy:
import numpy as np
my_array = np.array(my_list)
squared_array = np.square(my_array)
squared_list = squared_array.tolist()
🔬Теперь проверим какой способ самый быстрый в зависимости от количества элементов в списке! Для этого воспользуемся библиотекой timeit. Диапазон значений для списка будет от 0 до 500 000 элементов. 🏁 Массив
Numpy неоспоримый чемпион по скорости! Практически в 5 раз превышающий цикл и функцию map(), которая я думал будет быстрее. Списковое включение не только лаконичный, но и самый быстр способ возведения списка в квадрата без использовался дополнительных библиотек. ✒️ Как Вам такие питоновские гонки? Что еще было бы интересно Вам сравнить? Какие способы возведения списка в квадрат Вы еще знаете?
🏠 В качестве задания попробуйте использовать не метод
np.square(), а broadcasting.#numpy #python
👍12🔥7❤2
🎲 Для аналитика данных встроенная библиотека "random" в Python предлагает несколько полезных методов для работы со случайными числами.
⚒️ Рассмотрим самые полезные методы и примеры их использования.
🎬 Для начала необходимо импортировать библиотеку:
1️⃣
⚒️ Пример: Имитация результата подбрасывания монетки, где вероятность выпадения орла и решки 0.5.
⚒️ Пример: Генерация случайных идентификаторов клиентов в пределах заданного диапазона.
⚒️ Пример: Случайный выбор числа в рамках интервала для генерации синтетических данных.
⚒️ Пример: Имитация случайного выбора в пределах заданного диапазона.
⚒️ Пример: Проведение опроса с использованием метода стратифицированной выборки.
⚒️ Пример: Создание случайной выборки данных из большого набора данных для предварительного анализа.
⚒️ Пример: Произвольное изменение порядка строк набора данных или перемешивание карт в колоде.
⚒️ Пример: Генерирование случайных цен в пределах заданного диапазона для моделирования ценообразования или создание синтетических данных с непрерывными переменными.
⚒️ Рассмотрим самые полезные методы и примеры их использования.
🎬 Для начала необходимо импортировать библиотеку:
import random1️⃣
random(): Возвращает случайное число с плавающей запятой в диапазоне от 0 до 1.⚒️ Пример: Имитация результата подбрасывания монетки, где вероятность выпадения орла и решки 0.5.
coin_toss = random.random()
if coin_toss < 0.5:
outcome = 'Heads'
else:
outcome = 'Tails'
print(outcome)
Output: Tails
2️⃣ randint(a, b): Возвращает случайное целое число между a и b (включительно).⚒️ Пример: Генерация случайных идентификаторов клиентов в пределах заданного диапазона.
random_integer = random.randint(1, 10)
print(random_integer)
output: 8
3️⃣ randrange(start, stop[, step]): Возвращает случайно выбранный элемент из диапазона(start, stop, step). ⚒️ Пример: Случайный выбор числа в рамках интервала для генерации синтетических данных.
random_element = random.randrange(0, 100, 5)
print(random_element)
output: 70
4️⃣ choice(seq): Возвращает случайно выбранный элемент из последовательности.⚒️ Пример: Имитация случайного выбора в пределах заданного диапазона.
fruits = ['apple', 'banana', 'cherry', 'durian']
random_fruit = random.choice(fruits)
print(random_fruit)
output: durian
5️⃣ choices(population, weights=None, k=1): Возвращает список из k случайно выбранных элементов из совокупности с необязательным взвешиванием.⚒️ Пример: Проведение опроса с использованием метода стратифицированной выборки.
subgroups = ['A', 'B', 'C', 'D']
weights = [0.2, 0.3, 0.3, 0.2]
random_sample = random.choices(subgroups, weights=weights, k=100)
print(random_sample)
output: ['B', 'B', 'B', 'C', 'B', 'C'…
6️⃣ sample(population, k): Возвращает список с k уникальными случайно выбранными элементами из совокупности.⚒️ Пример: Создание случайной выборки данных из большого набора данных для предварительного анализа.
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
random_sample = random.sample(numbers, k=4)
print(random_sample)
output: [10, 5, 3, 1]
7️⃣ shuffle(x): Случайным образом перетасовывает элементы в списке x. Список изменяется. ⚒️ Пример: Произвольное изменение порядка строк набора данных или перемешивание карт в колоде.
cards = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']
random.shuffle(cards)
print(cards)
output: ['3', '8', '2', '10', 'K', '7', 'Q', '9', 'J', 'A', '6', '4', '5']
8️⃣ uniform(a, b): Возвращает случайное число с плавающей запятой между a и b, где a - нижняя граница, а b - верхняя граница.⚒️ Пример: Генерирование случайных цен в пределах заданного диапазона для моделирования ценообразования или создание синтетических данных с непрерывными переменными.
random_float = random.uniform(0.0, 1.0)
print(random_float)
output: 0.294
✒️ А как вы еще использовали использовали библиотеку random?
#python❤7👍6🔥6
📃 Сегодня наткнулся на интересную статью, рассказывающую о сравнении значений с
None в Python и Pandas. Это требуется для нахождения пропущенных данных. 🧃 Кто хочет подробно изучить тему, то может ознакомиться в статье, а в посте сразу перейду к выводам и немного разберем понятия.
🐍 В
Python при сравнении с None используйте is или is not.🐼 В Pandas при поиске пропущенных значений используйте методы
isna или isnull. 🤥 В
Python есть понятие "истинных" и "ложных" значений. Благодаря этому различные небулевы типы данных могут интерпретироваться в логических контекстах. Важно различать:😇 Буквальные значения
True или False: они являются логическими.😈 Истинные или ложные значения: любой логический или небулевой тип данных.
🗓️ В
Python следующее считается "ложным":1️⃣ Константы:
None и False.2️⃣ Ноль любого числового типа: 0, 0.0, 0j,
Decimal(0), Fraction(0, 1). 3️⃣ Пустые последовательности и коллекции:
", (), [], {}, set(), range(0).
🤗 Любое другое значение считается "истинным"
✒️ А что вы делаете с пропущенными данными?
#pandas #python
Please open Telegram to view this post
VIEW IN TELEGRAM
sourcery.ai
Comparing to None in Python and Pandas
Truthy and falsy values, None, and comparison in Python and Pandas.
❤9🔥3
📺 На канале уже более 90 постов, поэтому ориентироваться стало сложно, даже мне, поэтому сделал навигация по хэштегам и оставлю ее в закрепе:
Программирование:
🐍 #python
📕 #словари
🔢 #множества #set
🌀 #циклы
🐼 #pandas
🎱 #numpy
🕵️♀️ #задача
Профессиональный путь:
🔎 #поискработы
👔 #собеседования
🔥 #прожарка
📃 #резюме
📚 #курсы
Развитие:
🦊 #петпроект
👫 #opensource
📕 #книги
🧑🏫 #учеба
📊 #визуализация
🔬 #абтесты
🎲 #тервер
🤖 #chatgtp
🧞 #парадокс
💿 #данные
Youtube:
👩💻 #интервью
📹 #видео
Личное:
🦹 #истории
💼 #работа - профессиональный опыт
👩💻 #аналитика - статистика группы и youtube канала
©️ #авторскиеправа
🗒️ #подборка - наборы полезных ссылок
📑 #проект
🧑⚖️ #статьи
📰 #хабр
Конференции:
👍 #матемаркетинг #aha23
✒️ Также приглашаю в наш чат, где будем помогать друг другу и отвечать на вопросы и делиться тестовыми. Если есть советы, как сделать навигацию удобнее, то жду предложений
Программирование:
🐍 #python
📕 #словари
🔢 #множества #set
🌀 #циклы
🐼 #pandas
🎱 #numpy
🕵️♀️ #задача
Профессиональный путь:
🔎 #поискработы
👔 #собеседования
🔥 #прожарка
📃 #резюме
📚 #курсы
Развитие:
🦊 #петпроект
👫 #opensource
📕 #книги
🧑🏫 #учеба
📊 #визуализация
🔬 #абтесты
🎲 #тервер
🤖 #chatgtp
🧞 #парадокс
💿 #данные
Youtube:
👩💻 #интервью
📹 #видео
Личное:
🦹 #истории
💼 #работа - профессиональный опыт
👩💻 #аналитика - статистика группы и youtube канала
©️ #авторскиеправа
🗒️ #подборка - наборы полезных ссылок
📑 #проект
🧑⚖️ #статьи
📰 #хабр
Конференции:
✒️ Также приглашаю в наш чат, где будем помогать друг другу и отвечать на вопросы и делиться тестовыми. Если есть советы, как сделать навигацию удобнее, то жду предложений
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤8🔥8
📊 Всем привет! Сегодня разберем важную тему для решения рабочих задач: создание колонок по условию в
💂♀️ В основном создание колонок по условию требуется для изменения гранулярности данных, например, вместо того, чтобы отдельно рассматривать пользователей по конкретному возрасту, удобнее сформировать из них смысловые группу: молодые (18-30), средние (31-59) и пожилые(60+).
🏕️ Метод 1:
🔬 В который раз убеждаемся, что numpy - лидирующая библиотека, когда необходимо добиться максимальной скорости.
✒️ Какие еще применения условного создания колонок Вы знаете? Какой метод используете?
😀 Подписаться
#pandas #numpy #python
Pandas💂♀️ В основном создание колонок по условию требуется для изменения гранулярности данных, например, вместо того, чтобы отдельно рассматривать пользователей по конкретному возрасту, удобнее сформировать из них смысловые группу: молодые (18-30), средние (31-59) и пожилые(60+).
🏕️ Метод 1:
iterrows() построчно обрабатывает в Data Frame записи и применяет условную логику для создания нового столбца:for index, row in df.iterrows():
if condition:
df.at[index, 'new_column'] = value
else:
df.at[index, 'new_column'] = other_value
👩🎤 Метод 2: apply() в pandas позволяет нам применить функцию по осям (строки, колонки) к Data Frame:def conditional_logic(row):
if condition:
return value
else:
return other_value
df['new_column'] = df.apply(conditional_logic, axis=1)
🕵️♀️ Метод 3: np.where() обеспечивает векторизованный подход к созданию условного столбца. Мы можем указать условие и присвоить значения на его основе: df['new_column']=np.where(condition, value, other_value)
👍 Метод 4: np.select() позволяет нам создать новый столбец на основе нескольких условий:
conditions = [condition1, condition2, condition3]
choices = [value1, value2, value3]
df['new_column'] = np.select(conditions, choices, default=other_value)
🏎️ Давно мы не устраивали забеги на скорость, поэтому создадим DataFrame от 100 до 10 000 записей с возрастами от 18 до 80.
🏁 Результаты впечатляющие: iterrows очевидно занимает последнее место, самый популярный метод apply быстрее примерно в 7 раз при 10 000 строк. В упорной борьбе побеждает np.where, который в 263 раза быстрее, чем iterrows, в 35 раз быстрее apply и всего лишь в 1.3, чем np.select. 🔬 В который раз убеждаемся, что numpy - лидирующая библиотека, когда необходимо добиться максимальной скорости.
✒️ Какие еще применения условного создания колонок Вы знаете? Какой метод используете?
#pandas #numpy #python
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍7❤4
📕 Вышел новый Jupyter Notebook 7
ℹ️ Главные изменения: совместная работа в режиме реального времени, интерактивная отладка, оглавление, темы, темный режим, компактный просмотр на мобильных устройствах.
🐞 В Notebook 7 завезли интерактивный отладчик от JupyterLab, который позволяет пошагово просматривать код ячейка за ячейкой. Вы также можете устанавливать точки остановки и проверять переменные.
👯 Совместная работа в режиме реального времени позволяет делиться своим блокнотом с другими пользователями и редактировать его. Чтобы начать активировать совместную работу, необходимо установить расширение jupyter-collaboration:
💁♂️ В посте выделил самые интересные для себя нововведения, но более подробно можете ознакомиться по ссылкам:
🔗 Документация
🔗 Технические подробности
🏥 Есть много способов, которыми вы можете принять участие в работе над Notebook 7. Например, внести свой вклад в разработку, документирование и дизайн Jupyter Notebook на GitHub.
🔗 Ссылка на открытые «good first issue»
✒️ Как Вам обновления? Как по мне самый мажорный апдейт за долгие годы. И так как Jupyter является инструментом №1 для анализа данных, поэтому очень важно следить за его новыми возможностями.
😀 Подписаться
💬 Чат
#новости #python
ℹ️ Главные изменения: совместная работа в режиме реального времени, интерактивная отладка, оглавление, темы, темный режим, компактный просмотр на мобильных устройствах.
🐞 В Notebook 7 завезли интерактивный отладчик от JupyterLab, который позволяет пошагово просматривать код ячейка за ячейкой. Вы также можете устанавливать точки остановки и проверять переменные.
👯 Совместная работа в режиме реального времени позволяет делиться своим блокнотом с другими пользователями и редактировать его. Чтобы начать активировать совместную работу, необходимо установить расширение jupyter-collaboration:
pip install jupyter-collaboration
🌚 Темная тема теперь доступна в Jupyter Notebook по умолчанию. Вы также можете установить множество других тем JupyterLab. Например, для установки ночной темы JupyterLab:pip install jupyterlab-night💁♂️ В посте выделил самые интересные для себя нововведения, но более подробно можете ознакомиться по ссылкам:
🔗 Документация
🔗 Технические подробности
🏥 Есть много способов, которыми вы можете принять участие в работе над Notebook 7. Например, внести свой вклад в разработку, документирование и дизайн Jupyter Notebook на GitHub.
🔗 Ссылка на открытые «good first issue»
✒️ Как Вам обновления? Как по мне самый мажорный апдейт за долгие годы. И так как Jupyter является инструментом №1 для анализа данных, поэтому очень важно следить за его новыми возможностями.
💬 Чат
#новости #python
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16❤9👍2🥰2👎1
📄 Сегодня разберем одну из самых популярных задач для аналитиков данных по Python.
💼 Почти ни одно техническое собеседование не обходится без задания «Напишите функцию, которая определяет является ли строка палиндромом?»
🎓 Палиндром - это число, слово или текст, одинаково читающееся в обоих направлениях. Например, 101, «топот», «а роза упала на лапу Азора» являются палиндромами.
🎸 Рассмотрим несколько вариантов решения и сравним их по скорости:
✂️ Срезы
🔂 Цикл
⏪ Функция reversed()
🤖 Небольшое задание, попробуйте добавить еще проверку на пробелы, знаки препинания и заглавные буквы. Ответы присылайте в комментарии.
😀 Подписаться
💬 Чат
#собеседование #python
💼 Почти ни одно техническое собеседование не обходится без задания «Напишите функцию, которая определяет является ли строка палиндромом?»
🎓 Палиндром - это число, слово или текст, одинаково читающееся в обоих направлениях. Например, 101, «топот», «а роза упала на лапу Азора» являются палиндромами.
🎸 Рассмотрим несколько вариантов решения и сравним их по скорости:
✂️ Срезы
def is_palindrome(s):
return s == s[::-1]🔂 Цикл
def is_palindrome(s):
reversed_string = ""
for char in s:
reversed_string = char + reversed_string
return s == reversed_string
⏪ Функция reversed()
def is_palindrome(s):
return s == ''.join(reversed(s))
🔃 Рекурсия
def is_palindrome(s):
if len(s) <= 1:
return True
return s[0] == s[-1] and is_palindrome(s[1:-1])
🚇 По скорости и лаконичности выигрывает способ через обычные срезы, остальные можно просто использовать, чтобы удивить всех на собеседовании, особенно методом с рекурсией. 🤖 Небольшое задание, попробуйте добавить еще проверку на пробелы, знаки препинания и заглавные буквы. Ответы присылайте в комментарии.
💬 Чат
#собеседование #python
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11🔥6👍3