Особенности Jupyter Notebook, о которых вы (может быть) не слышали / Хабр

Особенности Jupyter Notebook, о которых вы (может быть) не слышали / Хабр Ipad

…использовать в дороге и поездках

Особенности Jupyter Notebook, о которых вы (может быть) не слышали / Хабр
Кстати, красный спортивный браслет на Apple Watch Series 5 – новая штука, (PRODUCT)RED. Цвет шикарный.

Если следили за сайтом, пару недель назад публиковал впечатления от поездки в Амстердам. Туда я не брал ноутбук вообще: только iPad Pro с чехлом-клавиатурой Smart Keyboard Folio. Было непривычно, всё-таки без ноута – как без рук, когда отвечаешь за крупный сайт.

Не могу сказать, что я прямо ударно пользовался айпэдом в поездке. Всё-таки мы не работать, а отдыхать планировали. Но на iPadOS абсолютно обыденно получилось «набить» пост, поправить тексты, отредактировать там же снятые фотографии.

В самолёте наконец-то посмотрел несколько серий «Утреннего шоу». Даже не несколько, а все, что на тот момент вышли. Полёт туда и обратно вообще как будто отсутствовал, помню только взлетели, айпэд на колени поставил – хоп, уже три часа пролетели, просят убрать его на посадке. И заряда не так много потратилось, ну может, процентов 25-30 при высокой-то яркости и Bluetooth-наушниках.

Дисплей классный, цветопередача и разрешение такие, что все морщины на главных актёрах рассмотрел. И вообще Энистон молодцом держится. Всем бы так в 50 лет выглядеть и играть.

Как рабочий девайс и развлекательный, iPad Pro идеально вписался в поездку и доказал, что без ноутбука командировка хуже не станет. Даже если бы пришлось работать в темпе будней, я бы в Амстердаме не пропал.

Не забывайте, что весь «бутерброд» мало весит: 764 грамма – это даже меньше, чем 12-дюймовый MacBook (920 грамм). Я был единственным, кто не брал ноутбук с собой, и поэтому в мой полупустой рюкзак мы распределили весь «перевес» ручной клади моих коллег перед вылетом.

…редактировать фото

Особенности Jupyter Notebook, о которых вы (может быть) не слышали / Хабр
Некоторые фотографии в статье сделаны на iPhone 11 Pro. Например, вот эта – на его сверхширокоугольную камеру.

Мы в редакции сами снимаем на беззеркалку Sony A7s, свои айфоны и вообще на всё, что окажется под рукой. Фотографии редактируем сами, своими силами. Ну или как, чаще моими силами и силами шеф-редактора Микка.

Каждую неделю приходится обработать штук 20-30 «RAW-ок», а в загруженные недели и под сотню.

Всё это было бы несложным, если бы не одно «но»: сильно загоняюсь с доработкой предметных фото. Могу сидеть над некоторыми по часу, пока не почувствую, что начал сходить с ума. Очень не доверяю алгоритмам и «лайтрумам», всяческим пакетным обработкам. Пыль они не уберут, как и разные неприятные несовершенства поверхностей. Предпочитаю ручной подход.

Со стороны iPad Pro и iPadOS всё супер. Копировать RAW на сам планшет проще некуда: я напрямую цепляю камеру по кабелю USB-C на micro-USB и заливаю «RAW-ки» прямо в Фотоплёнку. Редактировать их тоже удобно. Чаще всего пользуюсь Photoshop Fix и Express, иногда и Lightroom для разнообразия. Pixelmator не «зашёл» вообще никак, а версию Photo ещё не пробовал.

‎myplant notebook

MyPlant Notebook allows you to quickly track of all your plants.
Enter your plants information like common name, species, plant category, garden location, date planted, purchased from, price, description, etc. Separate sections for Plants, Photos, Logs, To-Do and Wish List.

Take photos of your plants tag, receipt, and growth.

Add to your Wish List while visiting a nursery, public garden or friends house. Quickly take a picture of the plant and its tag. Later you can add all the details, like your intended planting location, nursery name and description. Set a To-Do reminder for when it will become available.

Log entries with optional photo to track bloom dates or track a task completion like pruning, the application of soil amendments and sprays, growing conditions, pests and diseases.

To-Do list with scheduled reminders and automatic log entry creation on completion of the To-Do.

MyPlant Notebook does not come preloaded with plant data or photos. It only tracks information and photos you have added yourself.

With MyPlant Notebook you can:

— Create a list of existing plants you have in your garden
— Track common name, species, category, planted location, date planted
— Purchase information, nursery, price, warranty
— Keep description and special care information
— Take photos to track growing progress, the plant tag and purchase receipt
— Logs with optional photo to track task completions
— To-Do list for plant actions or maintenance tasks, schedule reminder notifications
— Automatic Log entry on completion of the To-Do task
— Wish List for keeping a record of plants you like, intended planting location, nursery name, price, add photos of the tag and plant
— Easily move from Wish List to Plant List after purchase
— You can take pictures with the camera or select from your photo album
— Select a photo as your favorite for your plant
— Duplicate a Plant or Wish List Entry to quickly get started on a new plant
— Email or Print a Plant or Wish List Entry to share with others

‎notebook — take notes, sync

* App Store 2021 Лучшее приложение года *

Делайте заметки, добавляйте файлы, создавайте контрольные списки и эскизы, записывайте аудио и захватывайте моменты, используя ноутбук. Все ваши заметки мгновенно синхронизируются между вашими устройствами и облаком.

Простая, интимная радость ноутбука исходит от использования приложения. Мы были дотошны в нашем дизайне, обращая внимание на каждую деталь. Ноутбук на 100% свободен и свободен от рекламы. Также доступны веб-приложения и Mac, а также веб-клипер для Chrome, Safari и Firefox.

ПРИНИМАЙТЕ ЗАМЕЧАНИЕ
Ноутбук предлагает различные способы делать заметки и захватывать ваши мысли.

— Напишите заметки. Начните с текста, добавьте изображения и эскизы, контрольные списки или аудио, все в одной заметке.
— Добавление PDF-файлов, текстовых документов, электронных таблиц и т. Д. С помощью специальной карточки заметок.
— Создайте и пометьте контрольные списки, чтобы получить материал с помощью специальной карточки заметок.
— Записывайте идеи, встречи и лекции с помощью карточки аудиозаписей.
— Захватите моменты, используя специальную фото-заметку.
— Сканировать визитные карточки, документы и многое другое.
— Нарисуйте идеи и возьмите рукописные заметки, используя ваш палец или Apple Pencil с карточкой заметки эскиза.

УМНЫЕ КАРТЫ
Содержимое, добавленное в ноутбук, интеллектуально отформатировано в красивые, четкие карты.

— Карта рецептов автоматически вытягивает фотографию и описание рецепта, создает контрольный список для ингредиентов и предоставляет пошаговые инструкции по приготовлению. См. Zoho.com/notebook для поддерживаемых сайтов.
— Видеокарта автоматически вытягивает предварительный просмотр видео и, как только открывается, играет в свободном от отвлечения пространстве. Работает на YouTube и Vimeo.
— Link Card тянет заголовок или заголовок страницы вместе с основным изображением, создавая красивую карточку для заметок.

ОРГАНИЗОВАТЬ ПРИМЕЧАНИЯ
— Вы можете организовывать различные заметки в блокнотах.
— Заметки могут быть сгруппированы вместе.
— Вы можете изменить порядок заметок в записной книжке.
— Перемещение или копирование карточек заметок между ноутбуками.
— Связать связанные заметки друг с другом.
— Любимые заметки, чтобы быстро найти их.

SYNC
— Синхронизируйте все свои заметки и ноутбуки через устройства и облако.
— Сделайте заметку на одном устройстве, добавьте к ней другое.

ИЗМЕРИТЕЛЬНЫЕ ЖЕСТКИ
— Проведите пальцем по ноутбуку или записной книжке для получения дополнительной информации.
— Зажмите, чтобы сгруппировать карты заметок в стек.
— Флик, чтобы найти нужные вам карточки заметок.
— В пейзажном представлении щелкайте, чтобы сложить карты с нотками, подобные аккордеонам.

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

БЕЗОПАСНЫЕ ЗАМЕЧАНИЯ
— Блокируйте отдельные ноутбуки и заметки с TouchID или кодом доступа.

НАЙТИ ПРИМЕЧАНИЯ
— Поиск заметок в ноутбуке или ноутбуках.
— Поиск объектов внутри фотографий, текста внутри фотографий и т. Д.

НАПОМИНАНИЯ
— Установите напоминания, чтобы оставаться на вершине вещей.

СОВЕРШЕННАЯ НОЧЬ ДЛЯ iOS
— Звуковые заметки автоматически доступны для текста.
— Поделитесь записками с друзьями и коллегами через iMessage.
— Используйте Siri, чтобы диктовать заметки с текстом и контрольным списком и искать фотографии.
— Запишите примечание перед тем, как оно ускользнет от ваших быстрых действий, используя 3D Touch.
— Получите самые последние заметки из панели уведомлений.

iPAD PRO
-Закрыть и удалить заметки и контент в приложениях из режима Split View и Slide Over
-Внимание в Split View на iPad Pro

НОУТБУК ДЛЯ ЯБЛОКА
— Запись аудиозаписей с вашего Apple Watch.
— Заметки Scribble на часах.
— Просмотр недавно созданных заметок на часах.

ДОЛЯ
— Создать публичные заметки с разделяемыми ссылками.
— Поделитесь своими заметками по электронной почте и другим вариантам.

‎pen to print — handwriting ocr

Pen to Print is the first handwriting to text OCR scanner converting handwritten notes into digital text available for edits, search and storage in any digital platform.
Use this unique handwriting OCR scanner to recognize and convert handwritten documents into digital text that can be edited, searched and stored on any device or cloud service.
Handwritten notes, such as letters, school notes, diaries, meeting minutes, grocery lists, recipes etc can now be scanned and converted, by our handwriting recognition engine, from image to text, available for use in any digital platform.

Our unique handwriting OCR (Optical character recognition) engine extracts handwritten texts from scanned paper documents and turns it into digital editable text. Unlike other OCR scanner apps, it is designed specifically to recognize handwriting in a scanned image.

Upgrade to premium plans to edit your text, save it to files, copy it, email it (to yourself or to others), add to Notes, or share on messaging apps available on your device. Then use your text in any word processor like Microsoft Word, Google Docs and similar, or export it to a note organizing app like Evernote, OneNote, Google Keep or similar.
We recommend trying the handwriting recognition first, for free, and only then purchase a premium plan, after seeing the quality of results the app is providing in converting handwriting to text.

Читайте также:  ‎Статья в App Store: Нарисуйте мангу сами

Although Digital text is easier to edit, search and store, handwriting on paper is still commonly used, since it’s fast, easy and accessible. Pen to Print’s handwriting recognition (OCR) is a great solution for those who still like the feel of pen on paper, but want to enjoy the benefits of digital. It is easy to use, fast and affordable.
A perfect solution for students, for study notes, class notes and homework, in high school, college or university.
Excellent for sharing meeting minutes, protocols and other handwritten documents with multiple participants.
A helpful tool for secretaries and paralegals, saving hours of typing.
Well suited for archiving and organizing documents.

The app currently supports Latin script only.
Our handwriting recognition system can convert different kinds of handwriting to text: block letters, cursive and regular script.

Great amount of time and effort are invested in this app in order to provide an efficient quality handwriting to text OCR tool. We hope you find this app useful and enjoy using it. We welcome all feedbacks and always happy to hear from our users.
If you like our app, an app review will be well appreciated 🙂
If you encounter a problem, please contact us at: contact@serendi.me, so we can provide you assistance and support.

For more information, visit our website: https://www.pen-to-print.com, and follow us on our Facebook page: https://www.facebook.com/pen2printOCR/?ref=bookmarks
Check out our demo: https://youtu.be/HZYii8EeCoQ

Download Pen to Print now, and start converting your handwritten notes to digital text!

The Yearly Plan and Monthly Plan are auto-renewing subscriptions, providing unlimited amount of text exports for a year/a month respectively, therefore:
Payment will be charged to iTunes Account at confirmation of purchase.
Subscription automatically renews unless auto-renew is turned off at least 24-hours before the end of the current period.
Account will be charged for renewal within 24-hours prior to the end of the current period, and identify the cost of the renewal.
Subscriptions may be managed by the user and auto-renewal may be turned off by going to the user’s Account Settings after purchase.
Any unused portion of a free trial period, if offered, will be forfeited when the user purchases a subscription to that publication, where applicable.
Check out our terms & conditions at: https://www.serendi.me/p2p-terms-and-conditions

‎smart notebook для ipad

** Представляем вам ПО SMART Notebook Maestro, позволяющее подключать SMART Notebook для iPad к ПО SMART Notebook. Посетите http://go.smarttech.com/notebook-maestro-download чтобы загрузить надстройку SMART Notebook Maestro и включить ее функциональность в ПО SMART Notebook. **

SMART Notebook для iPad — это упрощенная версия ПО SMART Notebook для совместного обучения. Данное приложение позволяет использовать и редактировать задания SMART Notebook для индивидуального или совместного обучения с помощью iPad.

Особенности 
• Перья и ластики. Рисуйте и пишите с помощью цветных цифровых перьев и маркеров, выбирайте толщину пера и размер ластика, а также разнообразные цвета мелков и каллиграфических чернил.
• Текст. Создавайте или редактируйте уже введенный текст, меняйте его цвет, размер и тип шрифта, а также выравнивание строк на странице с помощью свойств текста.
• Объекты. Организуйте информацию и меняйте макет страницы. Перемещайте, вращайте и масштабируйте объекты с помощью нажатий.
• Дважды нажмите на объект или нажмите и удерживайте его, чтобы вырезать, копировать, вставить, блокировать или разблокировать объекты, или же чтобы изменить их порядок. Дважды нажмите на объект или нажмите и удерживайте его, чтобы активировать «Бесконечное клонирование» и изменить свойства звука.
• Инструменты «Фигура» и «Линия». Вы можете добавить в файл фигуры и линии, а также выбрать цвет заливки фигур, толщину и цвет линий.
• Фотографии. Сделайте файлы более наглядными, добавив фотографии, сделанные с помощью камеры iPad, или из альбома «Фотопленка».
• Звук. Добавьте звуковое сопровождение к объектам для улучшения слухового восприятия материалов. Дважды нажмите на объект или нажмите и удерживайте его, чтобы открыть контекстное меню и записать новый звук.
• Делитесь файлами. Делитесь файлами SMART Notebook — отправляйте их по электронной почте или загружайте в учетные записи iCloud Drive, Dropbox, или Google Drive.
• Интеграция с iCloud Drive, Dropbox, и Google Drive. Поддерживайте файлы SMART Notebook в актуальном состоянии на всех устройствах благодаря интеграции с iCloud Drive/Dropbox/Google Drive. Всего одно нажатие на иконку iCloud Drive/Dropbox/Google Drive в диспетчере файлов приложения SMART Notebook для iPad, и вы сможете быстро войти в вашу учетную запись iCloud Drive/Dropbox/Google Drive и загрузить файлы SMART Notebook.
• SMART Notebook Maestro: Подключайте iPad к ПО SMART Notebook для настольных компьютеров
• Одновременный выбор нескольких объектов с помощью рамки.
• Возможность группировки и разделения примечаний.
• Автоматическая группировка чернил.
• Встроенные инструменты для проведения экзаменов. Вы можете легко проводить экзамены с помощью SMART Response VE.
• Отображение содержимого. Показывайте информацию с iPad всему классу на интерактивной доске, используя AirPlay и Apple TV, или при помощи кабелей HDMI или VGA с подходящими разъемами.

• Сохранение. Сохраняйте файлы под новыми именами для создания множества уникальных копий.
• Возврат к исходной версии. Одним нажатием вы можете вернуть файл к его оригинальной версии, чтобы с ним могла работать другая группа учащихся.

Горячие клавиши

Последнее, что вы, возможно, заметили при запуске ваших ячеек, это то, что их рамка стала синей, тогда как она была зеленой, когда вы редактировали ее. Всегда есть одна «активная» ячейка, выделенная рамкой, цвет которой обозначает ее текущий режим, где зеленый означает edit mode (режим редактирования), а синий — command mode (командный режим).

До сих пор мы показали, как запустить ячейку с помощью Ctrl Enter, но есть еще много других возможностей. Сочетания клавиш являются очень популярным аспектом среды Jupyter, поскольку они обеспечивают быстрый рабочий процесс на основе ячеек. Многие из этих действий вы можете выполнять в активной ячейке, когда она находится в командном режиме.

Ниже вы найдете список некоторых сочетаний клавиш Jupyter. Вам не нужно сразу их запоминать, но список должен дать вам хорошее представление о том, что это возможно.

  • Переключение между режимом редактирования и командным режимом с помощью Esc и Enter соответственно.
  • В командном режиме:
    • Прокрутите свои ячейки вверх и вниз с помощью клавиш «Вверх» и «Вниз».
    • Нажмите A или B, чтобы вставить новую ячейку выше или ниже активной ячейки.
    • M преобразует активную ячейку в ячейку Markdown.
    • Y установит активную ячейку в кодовую ячейку.
    • D D (D дважды) удалит активную ячейку.
    • Z отменит удаление ячейки.
    • Удерживайте Shift и нажмите Вверх или Вниз, чтобы выбрать несколько ячеек одновременно.
      • С выделением нескольких ячеек Shift M объединит выбранные ячейки.
  • Ctrl Shift — в режиме редактирования разделит активную ячейку по курсору.
  • Вы также можете нажать и Shift клик на полях слева от ваших ячеек, чтобы выбрать их.

Попробуй это в своей записной книжке. После того, как вы опробуете все команды, создайте новую ячейку Markdown, и мы научимся форматировать текст в наших блокнотах.

Графики с matplotlib

Далее мы можем перейти к решению данного вопроса, построив график средней прибыли за год. Мы можем также рассчитать доход, поэтому сначала мы определим некоторые переменные и метод, чтобы уменьшить наш код.

group_by_year = df.loc[:, ['year', 'revenue', 'profit']].groupby('year')

avgs = group_by_year.mean()
x = avgs.index
y1 = avgs.profit

def plot(x, y, ax, title, y_label):
    ax.set_title(title)
    ax.set_ylabel(y_label)
    ax.plot(x, y)
    ax.margins(x=0, y=0)

Теперь график!

fig, ax = plt.subplots()
plot(x, y1, ax, 'Increase in mean Fortune 500 company profits from 1955 to 2005', 'Profit (millions)')

Вау, это похоже на экспоненту, но у нее есть огромные провалы. Они должны соответствовать рецессии начала 1990-х и пузырю доткомов. Это довольно интересно увидеть в данных. Но почему прибыль возвращается к еще более высоким уровням после каждой рецессии?

Может быть, доходы могут рассказать нам больше.

y2 = avgs.revenue
fig, ax = plt.subplots()
plot(x, y2, ax, 'Increase in mean Fortune 500 company revenues from 1955 to 2005', 'Revenue (millions)')

Это добавляет другую сторону истории. Доходы отнюдь не так сильно пострадали, это отличная бухгалтерская работа для финансовых отделов.

С небольшой помощью Stack Overflow мы можем наложить эти графики с /- их стандартными отклонениями.

def plot_with_std(x, y, stds, ax, title, y_label):
    ax.fill_between(x, y - stds, y   stds, alpha=0.2)
    plot(x, y, ax, title, y_label)

fig, (ax1, ax2) = plt.subplots(ncols=2)
title = 'Increase in mean and std Fortune 500 company %s from 1955 to 2005'
stds1 = group_by_year.std().profit.values
stds2 = group_by_year.std().revenue.values

plot_with_std(x, y1.values, stds1, ax1, title % 'profits', 'Profit (millions)')
plot_with_std(x, y2.values, stds2, ax2, title % 'revenues', 'Revenue (millions)')

fig.set_size_inches(14, 4)
fig.tight_layout()

Это ошеломляет, стандартные отклонения огромны. Некоторые компании из списка Fortune 500 зарабатывают миллиарды, в то время как другие теряют миллиарды, и риск увеличивается вместе с ростом прибыли за последние годы. Возможно, некоторые компании работают лучше, чем другие; Являются ли прибыли первых 10% более или менее волатильными, чем нижние 10%?

Есть много вопросов, которые мы могли бы рассмотреть далее, и легко увидеть, как процесс работы в блокноте соответствует собственному мыслительному процессу, поэтому сейчас пришло время подвести этот пример к концу. Этот блокнот помог нам легко исследовать наш набор данных в одном месте без переключения контекста между приложениями, и наша работа сразу становится доступной и воспроизводимой.

Примечание: оригинальная версия этой статьи использовала as_matrix () вместо .values в приведенном выше фрагменте кода. На момент написания этой статьи команда .as_matrix () все еще существует, но ее планируется удалить в будущей версии pandas, поэтому мы заменили его на значение .values.

Изучение нашего набора данных

Наш блокнот благополучно сохранен, и мы загрузили наш набор данных переменную df в наиболее часто используемую структуру данных pandas, которая называется DataFrame и в основном выглядит как таблица. Давай те посмотрим как выглядят наши данные?

df.head()
yearrankcompanyrevenue (in millions)profit (in millions)
019551General Motors9823.5806
119552Exxon Mobil5661.4584.8
219553U.S. Steel3250.4195.4
319554General Electric2959.1212.6
419555Esmark2510.819.1
df.tail()
yearrankcompanyrevenue (in millions)profit (in millions)
254952005496Wm. Wrigley Jr.3648.6493
254962005497Peabody Energy3631.6175.4
254972005498Wendy’s International3630.457.8
254982005499Kindred Healthcare3616.670.6
254992005500Cincinnati Financial3614.0584

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

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

df.columns = ['year', 'rank', 'company', 'revenue', 'profit']

Далее нам нужно изучить наш набор данных. Являются ли они завершенными? Распознало ли pandas их, как ожидалось? Отсутствуют ли в них какие-либо значения?

len(df)
25500

У нас есть 500 строк за каждый год с 1955 по 2005 год включительно.

Читайте также:  Гаснет (тухнет) экран iPhone, как изменить время автоблокировки | Яблык

Давайте проверим, был ли наш набор данных импортирован, как мы ожидали. Простая проверка состоит в том, чтобы увидеть, были ли типы данных (или dtypes) правильно интерпретированы.

df.dtypes
year int64
rank int64
company object
revenue float64
profit object
dtype: object

Ооо Похоже, что с колонкой profit что-то не так — мы ожидаем, что это будет float64, как колонка revenue. Это указывает на то, что она, вероятно, содержит нецелые значения, так что давайте посмотрим.

non_numberic_profits = df.profit.str.contains('[^0-9.-]')
df.loc[non_numberic_profits].head()
yearrankcompanyrevenueprofit
2281955229Norton135.0N.A.
2901955291Schlitz Brewing100.0N.A.
2941955295Pacific Vegetable Oil97.9N.A.
2961955297Liebmann Breweries96.0N.A.
3521955353Minneapolis-Moline77.4N.A.

Как мы и подозревали! Некоторые значения являются строками, которые использовались для указания отсутствующих данных. Есть ли какие-то другие значения, которые закрались?

set(df.profit[non_numberic_profits])
{'N.A.'}

Получается, что других значений нет. Это облегчает интерпретацию, но что нам делать? Это зависит от того, сколько значений пропущено.

len(df.profit[non_numberic_profits])
369

Это небольшая часть нашего набора данных, хотя и не совсем несущественная, поскольку все еще составляет около 1,5%. Если строки, содержащие N.A., примерно одинаково распределены по годам, самым простым решением было бы просто удалить их. Итак, давайте кратко рассмотрим их распределение.

bin_sizes, _, _ = plt.hist(df.year[non_numberic_profits], bins=range(1955, 2006))

На первый взгляд, мы видим, что самые недопустимые значения за один год составляют менее 25, а поскольку существует 500 точек данных в год, удаление этих значений будет составлять менее 4% данных для худших лет. Действительно, кроме всплеска около 90-х годов, большинство лет имеют менее половины недостающих значений пика. Для наших целей допустим, что это приемлемо, и мы просто удалим эти строки.

df = df.loc[~non_numberic_profits]
df.profit = df.profit.apply(pd.to_numeric)

Мы должны проверить, что у нас получилось.

len(df)
25131
df.dtypes
year int64
rank int64
company object
revenue float64
profit float64
dtype: object

Супер! Мы завершили настройку набора данных.

Если бы вы собирались представить свою записную книжку в виде отчета, вы могли бы избавиться от созданных нами исследовательских ячеек, которые включены здесь в качестве демонстрации процесса работы с записными книжками, и объединить соответствующие ячейки (см.

Раздел «Дополнительные функции» ниже для подробностей об этом) для создания единой ячейки настройки набора данных. Это будет означать, что если мы когда-нибудь испортим наш набор данных в другом месте, мы сможем просто повторно запустить ячейку настройки, чтобы восстановить ее.

Инсталяция

Для новичка проще всего начать работу с Jupyter Notebooks, установив дистрибутив Anaconda. Anaconda является наиболее широко используемым дистрибутивом Python для работы с данными и поставляется с предустановленными наиболее популярными библиотеками и инструментами.

Некоторые из крупнейших библиотек Python, включенных в Anaconda, включают NumPy, pandas и Matplotlib, хотя вы можете взглянуть на полный список с более чем 1000 пакетов. Это позволит вам приступить к работе, без хлопот управления бесчисленными установками или беспокойства о зависимостях и проблемах установки, связанных с ОС.

Чтобы установить Анаконду, просто:

  1. Загрузите последнюю версию Anaconda для Python 3 (игнорируйте Python 2.7).
  2. Установите Anaconda, следуя инструкциям на странице загрузки и/или в исполняемом файле.

Если вы более продвинутый пользователь с уже установленным Python и предпочитаете управлять своими пакетами вручную, вы можете просто использовать pip для установки Jupyter Notebooks:

pip3 install jupyter

Используйте %run для выполнения кода на python

%run может выполнить код на языке Python из файлов с расширением .py — это поведение хорошо задокументировано.

Но эта команда может выполнять и другие блокноты из Jupyter! Иногда это очень полезно.

Обратите внимание, что %run — это не то же, что импорт python-модуля.

# this will execute all the code cells from different notebooks
%run ./2021-09-29-NumpyTipsAndTricks1.ipynb
[49 34 49 41 59 45 30 33 34 57]
[172 177 209 197 171 176 209 208 166 151]
[30 33 34 34 41 45 49 49 57 59]
[209 208 177 166 197 176 172 209 151 171]
[1 0 4 8 6 5 2 9 7 3]
['a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i' 'j']
['b' 'a' 'e' 'i' 'g' 'f' 'c' 'j' 'h' 'd']
['a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i' 'j']
[1 0 6 9 2 5 4 8 3 7]
[1 0 6 9 2 5 4 8 3 7]
[ 0.93551212  0.75079687  0.87495146  0.3344709   0.99628591  0.34355057
  0.90019059  0.88272132  0.67272068  0.24679158]
[8 4 5 1 9 2 7 6 3 0]

Особенности Jupyter Notebook, о которых вы (может быть) не слышали / Хабр

[-5 -4 -3 -2 -1  0  1  2  3  4]
[0 0 0 0 0 0 1 2 3 4]
['eh' 'cl' 'ah' ..., 'ab' 'bm' 'ab']
['ab' 'ac' 'ad' 'ae' 'af' 'ag' 'ah' 'ai' 'aj' 'ak' 'al' 'am' 'an' 'bc' 'bd'
 'be' 'bf' 'bg' 'bh' 'bi' 'bj' 'bk' 'bl' 'bm' 'bn' 'cd' 'ce' 'cf' 'cg' 'ch'
 'ci' 'cj' 'ck' 'cl' 'cm' 'cn' 'de' 'df' 'dg' 'dh' 'di' 'dj' 'dk' 'dl' 'dm'
 'dn' 'ef' 'eg' 'eh' 'ei' 'ej' 'ek' 'el' 'em' 'en' 'fg' 'fh' 'fi' 'fj' 'fk'
 'fl' 'fm' 'fn' 'gh' 'gi' 'gj' 'gk' 'gl' 'gm' 'gn' 'hi' 'hj' 'hk' 'hl' 'hm'
 'hn' 'ij' 'ik' 'il' 'im' 'in' 'jk' 'jl' 'jm' 'jn' 'kl' 'km' 'kn' 'lm' 'ln'
 'mn']
[48 33  6 ...,  0 23  0]
['eh' 'cl' 'ah' ..., 'ab' 'bm' 'ab']
['eh' 'cl' 'ah' ..., 'ab' 'bm' 'ab']
['bf' 'cl' 'dn' ..., 'dm' 'cn' 'dj']
['bf' 'cl' 'dn' ..., 'dm' 'cn' 'dj']

Особенности Jupyter Notebook, о которых вы (может быть) не слышали / Хабр

[ 2.29711325  1.82679746  2.65173344 ...,  2.15286813  2.308737    2.15286813]
1000 loops, best of 3: 1.09 ms per loop
The slowest run took 8.44 times longer than the fastest. This could mean that an intermediate result is being cached.
10000 loops, best of 3: 21.5 µs per loop

Особенности Jupyter Notebook, о которых вы (может быть) не слышали / Хабр

0.416
0.416

Итак, вот мой ipad pro 2021

11-дюймовая версия, модель на 1 терабайт с модемом LTE. Цвет Space Gray. 12,9-дюймовая модификация по-своему хороша, но по мне не является такой же универсальной. Размер имеет значение в обе стороны, все дела.

Сверху полный комплект всех официальных аксессуаров Apple: чехол-обложка Smart Folio, чехол-клавиатура Smart Keyboard Folio и Apple Pencil 2-го поколения.

Ещё к нему стекло, плёночка, плёночка для плёночки. Ну и сумка-карман.

Насчёт последнего шучу. Ну так, частично. В первые дни думал налепить хоть что-то сверху. Жалко случайно поцарапать. Потом здравый смысл проснулся. Стало понятно, что чехлов более чем достаточно для защиты. А от кривых рук и пять слоёв плёнки не спасут.

Особенности Jupyter Notebook, о которых вы (может быть) не слышали / Хабр
Оба фирменных чехла для iPad Pro надеваются на планшет с помощью магнитов. Очень удобно и не утолщает грани.

Комплект получился самым полным, не хватило только росписи Тима Кука. Это немного сбило в первые дни: за что хвататься, с чем разбираться первым? Одни плёночки снимаешь минут 20. Хотел это заснять, но сын сел на колени и давай «помогать». До сих пор нахожу их обрывки в неожиданных местах.

Решил разгоняться равномерно, поэтому вначале накатил резервную копию с iPhone. Потом скачал все приложения. Затем скачал всю медиатеку Apple Music. Следом загрузил все игры Apple Arcade. Все эпизоды всех сериалов Apple TV …

Да, 1 терабайт оказался мне не по зубам. Спустя 6 недель на iPad Pro остаётся свободными 600 с лишним гигабайт, и у меня, конечно, нет слов. Пару лет назад ходил с iPhone X на 64 гигабайта, и свобода не думать о памяти окрыляет, опьяняет.

За этим баловством прошли три первых вечера, после чего айпэд по-настоящему пошёл в дело.

Краткий обзор

В конце февраля был выпущен релиз JupyterLab – гибкой, интегрируемой и легко расширяемой среды, поддерживающей одновременную работу с несколькими блокнотами Jupyter, текстовыми файлами, датасетами, терминалами и другими компонентами. Аналогично классическим IDE в JupyterLab можно упорядочивать документы в рабочей области в удобном порядке при помощи вкладок и разделителей.

JupyterLab поддерживает отображение и редактирование множества форматов данных: изображений, CSV, JSON, Markdown, PDF, Vega, Vega-Lite и так далее. Для быстрой навигации по документам в JupyterLab есть настраиваемые горячие клавиши, а также возможность использования стандартных сочетаний из vim, emacs и Sublime Text.

JupyterLab может быть дополнен при помощи расширений, позволяющих настроить под себя различные части JupyterLab, включая темы, редакторы файлов и дополнительные компоненты.

Если вы уже знакомы с Jupyter Notebook, то вы очень быстро освоитесь с JupyterLab, которая в существенной мере обогащает возможности классического блокнота Jupyter. Не устанавливая JupyterLab, вы можете ознакомиться с демо-примером на странице Binder – инструменты Jupyter поддерживают запуск на сторонних серверах.

Для этой статьи мы взяли за основу ключевые моменты из документации JupyterLab, а также рассмотрели особенности лежащего в основе этой среды типа данных Jupyter Notebook, чтобы те, кто еще не использовали блокноты Jupyter, оценили их преимущества.

Настройка

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

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(style="darkgrid")

Здесь мы импортируем pandas для работы с нашими данными, Matplotlib для построения графиков и Seaborn для улучшения внешнего вида наших графиков. Обычно также импортируется NumPy, но в нашем случае, мы используем его через pandas, и нам не нужно это делать явно.

Последняя строка не является командой Python, она является нечто, называемое строковой магией, для инструктирования Jupyter захватывать графики Matplotlib и отображать их в выходных данных ячейки; это одна из ряда расширенных функций, которые выходят за рамки данной статьи.

Давайте продолжим и загрузим наши данные.

df = pd.read_csv('fortune500.csv')

Целесообразно делать это в отдельной ячейке на случай, если нам понадобится перезагрузить ее в любой момент.

Ответ на самый главный вопрос

Сразу озвучу.

Может ли быть iPad Pro заменить компьютер полностью?

Да. И… нет. Потому что он не компьютер. Это реально другое устройство.

iPad Pro поможет достичь большего, чем позволил бы самый мощный компьютер на свете. Или, наоборот, меньшего. Всё упирается в две вещи: тип вашего рабочего процесса и желание что-то в нём менять.

Если вы первоочерёдно работаете с текстом, планшет Apple плюс фирменный чехол-клавиатура закроют 99,5% задач, а для оставшихся 0,5% можно будет найти хитрые способы решения. Мне понадобилось 15 минут, чтобы привыкнуть к клавиатуре и неделя, чтобы вписать планшет в редакционный процесс. А затем я набил на нём 5 тысяч слов обзора AirPods Pro. Останавливаться не хотел.

Если вы ретушируете фотографии, всё упирается в то, насколько глубоко вы редактируете каждый кадр. Все базовые и даже многие продвинутые фишки, включая прямое редактирование RAW прямо с камеры, уже давно доступны на iPad Pro. Но полной замены «десктопного» Photoshop пока ещё нет. Ключевое слово – пока. Работа идёт.

Особенности Jupyter Notebook, о которых вы (может быть) не слышали / Хабр
Столько мощи, а размер – меньше чем в половину MacBook Pro.

Если вы хотите творить, рисовать и вообще развивать свои творческие порывы во что-то осязаемое, то лучшего гаджета, чем iPad Pro, вы не найдёте. Вместе с Apple Pencil и Procreate из App Store, вы сможете составить конкуренцию самым лучшим цифровым художникам мира. Не зря многие из них пользуются этим «комбо».

Читайте также:  ‎WebSSH - SSH Client on the App Store

Ну а если вам просто нужны развлечения, то iPad Pro легко раскроет себя как убер-гаджет. Retina-дисплей с умопомрачительной цветопередачей в ультратонком корпусе с убойными квадро-динамиками и фактически лидирующей мощностью процессора и видеочипа… Честно, даже спустя год у него фактически нет конкурентов, а держать всё это в руках – сплошное гиковское удовольствие.

Где iPad Pro вам может не помочь, так это в узкоспециализированных сценариях. Скажем, ваша компания пользуется каким-нибудь специально разработанным ПО для Windows 7 и закрылась от внешнего мира десятками проприетарных систем. Подход в данном случае ручной – гуглить, как это делали другие. Бывает, что решение находится, и в App Store есть что-нибудь подходящее. Бывает, что нет.

Как видите, iPad для каждого будет совершенно разным, и такой же разной окажется его фактическая польза. Кстати, интересно собрать истории от владельцев айпэдов. Как вы его используете? Особенно интересны те самые «узкоспециализированные сценарии».

Ну да ладно. Перейдём к моим собственным впечатлениям. 6 недель, iPad Pro 2021 с утра до вечера и редкими перерывами на MacBook.

Как оно?

Работа с файлами тоже порадовала. сжимаю и кидаю в разные «облака», будто в macos

Я уже говорил, что теперь могу просто взять и скинуть RAW-фотки прямо с камеры в память iPad. Но это так, поверхностная тема.

Вот типичная рабочая ситуация. Отснял 200 фотографий, скинул их по кабелю на iPad Pro. Отобрал несколько десятков лучших, остальные удалил. Открываю фоторедактор, обрабатываю их все. Сохраняю.

Теперь выделяю все поправленные фото и отправляю их в приложение Файлы. Перехожу туда, создаю из них архив. Теперь мне надо поделиться им с автором. Но не самим архивом, а просто ссылкой на него в «облаке».

Мы как-то привыкли пользоваться Яндекс.Диском – в iCloud не у всех есть свободное место. Поэтому я жму на архив, выбираю «Поделиться» и отправляю его прямо в приложение Яндекс.Диска. Там он автоматически выгружается на сервер.

Остаётся нажать «Поделиться ссылкой» и скинуть в чат автору. Рабочий процесс закончен, никакого ноутбука не понадобилось. Красота.

Возможности приложения Файлы можно существенно расширить не только через совместимый софт из App Store, вроде того же Яндекс.Диска. Очень помогают и Команды.

Сейчас не буду сильно углубляться в то, как работают Команды в iOS и iPadOS, у нас были про это статьи. Но могу сказать, что через них мне удалось глобально решить одну узкоспециализированную задачу, которая ранее напрягала наших авторов и редакцию в целом: создание ссылок-черновиков готовых статей, чтобы с ними мог ознакомиться кто-то вне админских привилегий.

Грубо говоря, я сделал команду, которая через Javascript «парсит» полный HTML-код страницы без привязанного к ней медиа-содержимого. Затем создаёт из него .html-файл чистого кода. И сохраняет его в Файлы.

Загрузив этот .html-файл на сайт, я или любой автор получаем ссылку на общедоступный черновик статьи, который можно отправить кому-нибудь за пределами админки. Сделать что-то подобное без Команд ранее было невозможно. А теперь у меня прямо в Safari на iPad и iPhone есть ярлык – «Создать драфт».

Таких примеров продвинутых функций очень много. Главное, что с прокачанными «Файлами» и «Командами» можно решать сложные задачи одной кнопкой – и существенно упрощать рабочий процесс себе и коллегам. Респект Apple за всё это.

Спасибо за всё это надо говорить не только ipad pro, но и ipados

Apple серьёзно взялась за операционку планшетов. iPadOS наделила iPad Pro, да и другие айпэды массой новых функций, многие из которых были в «топе» желаний пользователей чуть ли не с первого года существования всей категории устройств.

iPadOS разделяет 99% функций iOS 13, но при этом добавила сверху несколько нововведений, которых на iPhone просто не может быть. Не тот дисплей и форм-фактор, всё-таки. И самым главным среди этих «эксклюзивных» фишек является режим многооконности.

Это именно многооконность, а не многозадачность. Последняя была и в предыдущих версиях iOS. Речь о функции Slide Over, и она – просто бомба. Стыдно признаваться сейчас, но в первые полторы недели я ни разу не использовал её. Просто забыл. Сказываются старые привычки от айфона.

Особенности Jupyter Notebook, о которых вы (может быть) не слышали / Хабр
Видите окно справа? Это Slide Over.

Slide Over работает так: поверх любого открытого приложения вы открываете Док-панель и «вытягиваете» иконку другой программы. Сбоку экрана появляется новое окно. В нём загружается выбранный софт. Это окно работает одновременно с основным. Его можно перетаскивать по противоположным углам. Что-то вроде «картинки-в-картинке».

Slide Over позволяет свободно пользоваться второй программой одновременно с первой, чье рабочее пространство при этом не сужается. Как будто сверху положили приложение-виджет или «наклейку».

Файлы различных форматов

В архитектуре JupyterLab существенное внимание уделено отображению и редактированию данных в самых разных форматах – и загружаемым в качестве входных данных, и выгружаемым на выходе. Формат файлов автоматически определяется по расширению файла или его имени при отсутствии расширения. Как было упомянуто выше, файлы могут открываться в нескольких представлениях, например, в редакторе и средстве просмотра.

Для того, чтобы использовать эти различные форматы данных в качестве выходных данных в блокноте или консоли вы можете использовать соответствующий API для отображения, например, запуск следующего кода

from IPython.display import display, HTML
display(HTML('<h1>Hello World</h1>'))

приведет к отображению соответствующего HTML-коду блока.

Кратко опишем какие еще форматы в текущий момент поддерживаются (соответствующие видеоиллюстрации можно посмотреть на странице документации):

    • Markdown. При этом работает в том же духе, что и внутри ячеек, то есть, в частности отображаются формулы, записанные в LaTeX.
    • Изображения. Поддерживаемые форматы: .bmp, .gif, .jpeg, .jpg, .png, .svg. Можно использовать плюс и минус, чтобы производить зум изображения, [ и ] для поворота изображения, H и V для горизонтального и вертикального отражения, I – для инвертирования цветов. Для svg изображений есть также соответствующий редактор.
    • Файлы с разделением столбцов разделителями. То есть .csv файлы (и .tsv при изменении расширения). Также имеется и средство просмотра с возможностью выбора разделителя, и редактора. JupyterLab в зависимости от ограничения используемого браузера умеет открывать работать через эти интерфейсы с довольно большими файлами, для Chrome это порядка 730 Мб.
    • JSON-файлы. Отображает данные в виде соответствующей древовидной структуры, также есть возможность редактирования.
    • HTML, LaTeX, PDF, Vega/Vega-Lite, Virtual DOM.

Ядра (kernels)

За каждым ноутбуком работает ядро. Когда вы запускаете ячейку кода, этот код выполняется в ядре, и любой вывод возвращается обратно в ячейку для отображения. Состояние ядра сохраняется во времени и между ячейками — оно относится к документу в целом, а не к отдельным ячейкам.

Например, если вы импортируете библиотеки или объявляете переменные в одной ячейке, они будут доступны в другой. Таким образом, вы можете думать о документе блокнота как о чем-то сравнимом с файлом сценария, за исключением того, что он является мультимедийным. Давайте попробуем, чтобы почувствовать это. Сначала мы импортируем пакет Python и определим функцию.

import numpy as np
def square(x):
    return x * x

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

x = np.random.randint(1, 10)
y = square(x)
print('%d squared is %d' % (x, y))
1 squared is 1

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

print('Is %d squared is %d?' % (x, y))
Is 1 squared is 1?

Здесь нет сюрпризов! Но теперь давайте изменим у.

y = 10

Как вы думаете, что произойдет, если мы снова запустим ячейку, содержащую наш оператор print? Мы получим на выходе 4 в квадрате 10?

Большую часть времени поток в вашем ноутбуке будет сверху вниз, но часто приходится возвращаться, чтобы внести изменения. В этом случае важен порядок выполнения, указанный слева от каждой ячейки, например, In [6], позволит вам узнать, имеет ли какая-либо из ваших ячеек устаревший вывод. И если вы когда-нибудь захотите сбросить настройки, есть несколько невероятно полезных опций из меню Kernel:

  • Restart: перезапускает ядро, таким образом очищая все переменные и т.д., которые были определены.
  • Restart & Clear Output: то же, что и выше, но также стирает вывод, отображаемый под ячейками кода.
  • Restart & Run All: то же, что и выше, но также будет запускать все ваши ячейки в порядке от первого до последнего.

Если ваше ядро зависло в вычислении, и вы хотите остановить его, вы можете выбрать опцию Interupt.

Ячейки (cell)

Мы вернемся к ядрам чуть позже, но сначала давайте разберемся с ячейками. Ячейки образуют структуру ноутбука. На скриншоте нового блокнота в приведенном выше разделе это поле с зеленым контуром. Есть два основных типа ячеек, которые мы рассмотрим:

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

Первая ячейка в новой записной книжке всегда является ячейкой кода. Давайте проверим это на классическом примере с Hello World. Введите print (‘Hello World!’) в ячейку и нажмите кнопку запуска на панели инструментов показанная выше или нажмите Ctrl Enter. Результат должен выглядеть как то так:

print('Hello World!')
Hello World!

Когда вы запустите ячейку, ее вывод будет отображен ниже, а метка слева изменится с In [] на In [1]. Вывод ячейки кода также является частью документа, поэтому вы можете увидеть его в этой статье. Вы всегда можете определить разницу между кодом и ячейками Markdown, потому что ячейки кода имеют эту метку слева, а ячейки Markdown — нет.

Часть «In» метки просто короткая запись слова «Input», а номер метки указывает, когда ячейка была выполнена в ядре — в нашем случае ячейка была выполнена первой. Запустите ячейку снова, и метка изменится на In [2], потому что теперь ячейка была второй, запущенной в ядре. Позже станет понятнее, почему это так полезно, когда мы поближе познакомимся с ядрами.

В строке меню нажмите Insert (Вставить) и выберите Insert Cell Below (Вставить ячейку ниже), чтобы создать новую ячейку кода под первым и попробуйте следующий код, чтобы увидеть, что происходит. Вы замечаете что-то другое?

import time
time.sleep(3)

Эта ячейка не производит никакого вывода, но для ее выполнения требуется три секунды. Обратите внимание, как Jupyter показывает, что ячейка в данный момент работает, изменив метку на In [*].

Как правило, выходные данные ячейки поступают из любых текстовых данных, специально напечатанных во время выполнения ячеек, а также из значения последней строки в ячейке, будь то переменная-одиночка, вызов функции или что-то еще. Например:

def say_hello(recipient):
    return 'Hello, {}!'.format(recipient)
say_hello('Tim')
'Hello, Tim!'

Оцените статью
iPad Мобайл
Добавить комментарий