Pull to refresh

Comments 6

Если для начинающих, то надо писать импорт библиотек обязательно. У начинающих это большой камень преткновения.

А так — очень скучный и нудный текст. Примеры бессмысленные. Можно же ещё один раз рассказать новичку про методы pandas, делая это в ноутбуке, с теми же графиками (или взять seaborn для них), чем писать вычисления на Питоне в виде функций со странными названиями.

Ну дичь же:

def ex_2_7():
    '''Подгонка нормальной кривой поверх гистограммы'''
    df = load_data('dwell-times.tsv')
    means = daily_mean_dwell_times(df)['dwell-time'].dropna() 
    ax = means.hist(bins=20, normed=True)
    xs = sorted(means)    # корзины
    df = pd.DataFrame()
    df[0] = xs...


В функцию ничего не передаётся, названа ex_2_7 (видимо, пример 2 из главы 7, или пример 7 из главы 2), загружает жёстко заданные внутри себя данные, вызывать откуда-то из вычислений её бессмысленно. Новичок это даже запустит с большим трудом, не надо ему такие функции городить. Особенно, новичок по статистике, у которого Питон — не всегда самый первый инструмент.
Это задачно-ориентированный тест, т.е. на первом месте находится решаемая задача, а используемые средства — на втором. Примеры имеют имена ex_N_M, где ex — это example, N — номер серии постов и M — порядковый номер.

В таком виде примеры могут быть собраны вместе и запускаться из учебной оболочки независимо. Надо смотреть шире…

Здесь авторская задача — нарратив, а доработкой примеров могут заняться те, кому захочется использовать примеры в учебном процессе или в другом месте: поддержание базы данных, ленивая загрузка, придание функциям более универсального характера и пр.
«Имена, которые видны пользователю как часть общественного API должны следовать конвенциям, которые отражают использование, а не реализацию.» PEP 8

Думаю это применимо к любому участку кода, который публикуется.
PEP — это РЕКОМЕНДАЦИИ, а не догма!

Учебный характер нарратива обуславливает используемый код иллюстраций. Иллюстрации должны быть краткими и четкими и не отвлекать от основного изложения. Входы/выходы как раз и будут отвлекать внимание.

К тому же, примеры в таком виде легко можно собрать и использовать независимо в программной оболочке.

Для matplotlib >= 2.2.0 вместо normed=True нужно передавать density=True

Исправлено. В исходниках изначально все было протестировано в последних версиях библиотек.
Sign up to leave a comment.

Articles