Защо не използвам тетрадка Jupyter и вие също не трябва
– Джоел Грус
– Искандер Юсоф
Преносимите компютри на Jupyter са почти първият инструмент, който изследователят на данни изважда от рафта, когато се захване с нов проблем. И с основание. Няма нищо подобно на незабавната обратна връзка, която получавате, когато натиснете shift-enter и кодът ви бъде оценен. Освен това можете да видите вашите графики точно там до вашия код! Какво не обичаш?
Е, доста.
Аз съм специалист по данни, но много рядко използвам преносими компютри Jupyter. Ето защо и защо смятам, че не трябва да ги използвате, ако искате да бъдете най-ефективният специалист по данни, който можете да бъдете.
Те насърчават замърсяването на глобалното пространство от имена
Най-добрата характеристика на преносимите компютри е, че осигуряват незабавна обратна връзка: просто натиснете shift-enter.
Това е и най-лошата им характеристика.
За да получа незабавна обратна връзка, открих, че пиша код в глобалното пространство от имена, вместо да пиша функции. Това обикновено е
за лоша практика
разработка в Python. Причината за това е, че е много трудно да се разсъждава за ефекта от изпълнението на последователност от клетки. Всички те модифицират глобалното пространство от имена, което означава, че вашият бележник е наистина ужасно голям
държавна машина
.
Това също води до следващите ми две възражения...
Те обезсърчават ефективното повторно използване на кода
Най-добрият начин за повторно използване на код в Python е чрез функции и класове. В преносимите компютри изкушението е да се използва повторно код
клетки
вместо това. Тъй като използвате глобалното пространство от имена, вие разчитате, че веднъж клетките се изпълняват в определен ред. За да използвате повторно клетките на кода, ще трябва да зададете някаква глобална променлива, след което да стартирате дясната клетка. Проследяването на това какво трябва да се изпълни и в какъв ред след това се превръща в проблем, а също така води до...
Те вредят на възпроизводимостта
Ако винаги работите с вашия преносим компютър в линеен ред от началото до края, тогава възпроизводимостта не би трябвало да е проблем. Някой друг може да вземе вашия бележник, да го стартира по ред и да получи същите резултати.
Въпреки това (вижте по-горе) това означава, че обикновено няма да имате повторно използване на страхотен код. Освен това донякъде обезсилва едно от предимствата на използването на anotebook, което е, че можете да го стартирате в какъвто ред желаете.
Ако не го изпълнявате винаги по линеен начин, има вероятност други хора, работещи с вашия лаптоп, също да го изпълняват в различен ред и е трудно да се гарантира, че те ще получат същото (или поне ефективно) резултати.
Вие се интересувате от възпроизводимостта, нали? Вие сте данни
учен
.
Те не работят добре с контрола на източника
Ако сте професионален специалист по данни, вероятно работите в ateam. Това означава, че трябва да си сътрудничите. А сътрудничеството с преносими компютри е... боклук. Обикновено това означава да запазите бележника и да го изпратите на някого.
Разбира се, можете да поставите бележници в контрол на източника. Стига никой друг да не го редактира по същото време, в който случай, успех в опита да се слеете с техните промени.
Какво ще кажете за тестването?
Няма нищо като няколко добре написани модулни теста за намиране на грешки във вашия код. И има много случаи, когато съм прекарвал десет минути в чакане експериментът да се проведе, само за да открия, че той се пробива наполовина. Ако имах бърз тест, можех да стартирам първи, нямаше да се налага да чакам.
За съжаление е не само трудно, но почти невъзможно да се пишат модулни тестове за клетки на бележник. Отново, ако всъщност пишете функции в тетрадки, можете да го направите, но тогава губите свойството niceinteractivity.
Те не са PyCharm
И така, ако не трябва да използвате тетрадки, какво
трябва
използвате ли?
Не намерих нищо по-добро от PyCharm. Безпроблемно превежда мислите ми в код. Добре, може би не е толкова лесно, но има някои невероятни функции, които много ми липсват, когато съм принуден да използвам бележник:
Правилно попълване на кода (а не боклука, който получавате, когато натиснете tabin в бележник).
Автоматично преименуване на променливи
Търсете в цялата кодова база за функция или клас
Рефакторинг за извличане на метод или функция
...между много други неща.
Но какво да кажем за радостта от натискането на shift-enter? Имам нужда от моя допамин!
Ако наистина се нуждаете от интерактивни тетрадки, можете да платите за професионалното издание, което има „научен режим“. Това включва възможност за преглеждане на графики на matplotlib и кадри с данни на pandas. Можете дори да стартирате бележници от PyCharm, ако наистина искате.
Но вие не искате, нали?
(Искате ли да обсъдите собствените си специфични проблеми с данните? Книга a
безплатна консултация
с нас – ние сме тук, за да помогнем!)
Харесах тази статия
?
След това получете най-доброто от DataPastry, доставено направо във входящата ви кутия. Вие ще получите:
Нашата безплатна електронна книга,
Ръководство на мениджъра за наука за данни
Задълбочени съвети как да настроите своя екип за данни, инфраструктура и др
Инструменти и материали, които да ви помогнат да установите стойността на вашите данни и да наемете правилните специалисти по данни
Абонирайте се
Latest: Защо Jupyter Notebook е толкова популярен сред специалистите по данни
Next: Ядрото на преносим компютър Jupyter не може да бъде свързано