Size: a a a

Python для анализа данных

2021 November 14

VM

Valerii Mamontov in Python для анализа данных
Говорят, там нет циклов
источник

I

Igor in Python для анализа данных
Верно, там их нет) Ни переменных, ни циклов)
источник

VM

Valerii Mamontov in Python для анализа данных
И пугает и интригует одновременно))
источник

AG

Arsen Gumin in Python для анализа данных
Для ссылочной прозрачности, а вместо циклов там рекурсия и хвостовая рекурсия) лучше скалу, там не так радикально все
источник

I

Igor in Python для анализа данных
Меня Clojure/Haskell заинтересовал))) Ну и плюс матчасть всего этого)
источник

AG

Arsen Gumin in Python для анализа данных
Да, языки интересные, но реально надо много время посвятить этому)
источник

I

Igor in Python для анализа данных
Понимаю)
источник

v

v in Python для анализа данных
Мап и фильтр не нужны не потому что заменяются циклами, а потому что заменяются компрехеншенами.
Особенно если их надо потом обворачивать списки, чтобы ленивые вычисления совершились.

[x**2 for x in vals if x != 0]
list(map(lambda x: x**2, filter(lambda x: x != 0, vals)
источник

v

v in Python для анализа данных
Вот к reduce так и не привык, за исключением простейших случав (сумма, произведение) цикл читаемей выходит.
источник

IS

Ilya Shutov in Python для анализа данных
Только вот эти компрехеншены работают на несколько порядков дольше всяких датафреймов. Достаю простой пример с полки

Берём примерчик из популярных книжек:

timeit.timeit("[{'a': i, 'b': 2 * i} for i in range(10000)]", number = 1000)
4.28375910000068s

Аналог на base R дает на порядок меньше
bench::mark(
 m = lapply(1:1000, function(x){1:10000 %>% data.frame(a = ., b = 2 * .); NULL}),
 iterations = 1
)
# A tibble: 1 x 13
 expression      min   median itr/sec mem_alloc
 <bch:expr> <bch:tm> <bch:tm>     <dbl> <bch:byt>
1 m             407ms    407ms      2.46     115MB

А
это мы ещё даже data.table не расчехлили
источник

I

Igor in Python для анализа данных
К чему это ты?)
источник

I

Igor in Python для анализа данных
Никто же не говорит что нужно переносить работу с данными на стандартные средства)
источник

AG

Arsen Gumin in Python для анализа данных
Да, у нас тут стандартный холивар был питоновский про мап) понятно, что есть более оптимизированные как и структуры так и языки
источник

IS

Ilya Shutov in Python для анализа данных
Не стоит ими чрезмерно увлекаться не понимая накладных расходов. Иногда циклы быстрее и понятнее оказываются. И векторизация под капотом.
Видел, как необоснованное увлечение ФП приводило на ФП рефакторинге к бессмысленному уничтожению понятного и быстрого кода.
Все, больше никаких задних мыслей нет.
источник

AK

Anup Kuplu in Python для анализа данных
источник

IS

Ilya Shutov in Python для анализа данных
Но по факту почти все так делают. Увы. В холивары я дальше не иду, не переживайте.
источник

D

Daria in Python для анализа данных
для аналитики мне очень понравился этот курс, в нем практики много
https://www.edx.org/course/using-python-for-research

По теории, для начала я бесплатно послушала  https://www.edx.org/course/programming-for-everybody-getting-started-with-pyt ,  дальше, например, можно взять такой -  https://www.edx.org/course/cs50s-introduction-to-programming-with-python

Лайфхак: edx спонсирует до 5 курсов на 1 человека в год, в размере до 90% стоимости.
источник

v

v in Python для анализа данных
Я чисто про ванильный питон сейчас. Если ванильный мап засунуть, то тоже медленно очень будет.
источник

T

Tishka17 in Python для анализа данных
На R полагаю все работает несколько не так как в питоне. Но вот если сравнить листкомпы и датафремы в питоне, я ещё десять раз подумаю что быстрее. По моим ощущениям, пандас - это медленно
источник

v

v in Python для анализа данных
Пандас - это нампи с оверхедом
источник