Anaconda i notatniki Jupitera
Do zabawy z Pythonem wykorzystałem Anaconda i dostępne notatniki Jupitera.
Pobrałem wersję 64 bitową z obsługa Pythona 3.
Po pomyślnej instalacji uruchamiamy Anaconda Navigator
Wybieramy jupyter notebook, przycisk Launch i naszym oczom otwiera się strona
Tworzymy notatnik wybierając język Python 3.
Przygotowaliśmy nasz pierwszy notatnik o nazwie Nowy, nazwę można łatwo zmienic z poziomu menu File lub klikając na nazwę.
Podstawowe operacje dostępne w notatniku można wylistować za pomocą klawisza H. Należy pamiętać, by kursor nie był umieszczony w komórce.
Notatnik można rozumieć jako interkatywny skrypt, który składa się z dwóch rodzajów komórek: opisowych (w składni Markdown) i tych, w których wpisujemy kod języka.
Opis składni Markdown można znaleźć w wielu miejscach. Ja korzystałem z
https://github.com/adam-p/markdown-here/wiki/Markdown-Here-Cheatsheet
Próbujmy sprawdzić wersję naszych narzędzi
import sys
print ("Używana wersja Pythona to: ", sys.version)
U mnie wyglada to tak:
Używana wersja Pythona to: 3.6.0 |Anaconda 4.3.1 (64-bit)| (default, Dec 23 2016, 11:57:41)
[MSC v.1900 64 bit (AMD64)]
Siłą języka, nie tylko w zakresie uczenia maszynowego (ML), jest dostępna ogromna list gotowych pakietów, które znacznie upraszczają budowę skomplikowanych algorytmów.
Pakiety gromadzone są w repozytorium zwanym PyPI (Python Package Index). Instalacja modułów może być wykonana również z poziomu notatnika.
Kod zaczynamy od !pip, co oznacza wykorzystanie instrukcji powłoki pip. Przykładem takiego pakietu jest folium pozwalający na obsługę map.
!pip install folium
Collecting folium Downloading https://files.pythonhosted.org/packages/07/37/456fb3699ed23caa0011f8b90d9cad94445eddc656b601e6268090de35f5/folium-0.5.0.tar.gz (79kB) Collecting branca (from folium) Downloading https://files.pythonhosted.org/packages/b5/18/13c018655f722896f25791f1db687db5671bd79285e05b3dd8c309b36414/branca-0.3.0-py3-none-any.whl Requirement already satisfied: jinja2 in c:\users\user\anaconda3\lib\site-packages (from folium) Requirement already satisfied: requests in c:\users\user\anaconda3\lib\site-packages (from folium) Requirement already satisfied: six in c:\users\user\appdata\roaming\python\python36\site-packages (from folium) Requirement already satisfied: MarkupSafe>=0.23 in c:\users\user\anaconda3\lib\site-packages (from jinja2->folium) Building wheels for collected packages: folium Running setup.py bdist_wheel for folium: started Running setup.py bdist_wheel for folium: finished with status 'done' Stored in directory: C:\Users\User\AppData\Local\pip\Cache\wheels\f8\98\ff\954791afc47740d554f0d9e5885fa09dd60c2265d42578e665 Successfully built folium Installing collected packages: branca, folium Successfully installed branca-0.3.0 folium-0.5.0
Krótka demonstracja możliwości
# importujemy pakiet folium
import folium
# konfiguracja obiektu mapy Polski,
mapa = folium.Map(location=[52.325, 18.94], zoom_start=6)
# wyswietlamy mape
mapa
Kod umieszczony na GitHub
Podgląd:
https://nbviewer.jupyter.org/github/djkormo/PythonForML/blob/master/intro/MapaPolski.ipynb
Uruchomienie:
https://mybinder.org/v2/gh/djkormo/PythonForML/master?filepath=intro/MapaPolski.ipynb
Po uruchomieniu kontenera należy wyczyścić informacje wyjściowe za pomocą menu Kernel -> Restart & Clear Output.
Reenderowane wtyczką WP:
Na tym kończę pierwszą demonstrację. Nie można być astronautą z marszu.
Wracamy do podstaw
- Na początku warto zaznajomić się z czterema podstawowymi typami skalarnymi:
całkowitym,
rzeczywistym,
logicznym,
łańcuchowym
Należy zwrócić uwagę na to, że mamy do czynienia z dynamicznym typowaniem, co w praktyce oznacza zmianę typu zmiennej w czasie i wymaga kontroli typu przez programistę. To na czym chcę się dodatkowo skoncentrować to jawna konwersja typów, system pomocy, wbudowane funkcje.
Przykładowy notatnik umieszczony na githubie:
https://github.com/djkormo/PythonForML/blob/master/intro/Kurs_1_typy_zmienne.ipynb
Podgląd:
https://nbviewer.jupyter.org/github/djkormo/PythonForML/blob/master/intro/Kurs_1_typy_zmienne.ipynb
Uruchomienie:
https://mybinder.org/v2/gh/djkormo/PythonForML/master?filepath=intro/Kurs_1_typy_zmienne.ipynb
Po uruchomieniu kontenera należy wyczyścić informacje wyjściowe za pomocą menu Kernel -> Restart & Clear Output.
Reenderowane wtyczką WP:
Literatura:
Opis podłączenia notatnika z Githuba do WordPressa
https://github.com/ghandic/nbconvert
Cheat sheet
https://perso.limsi.fr/pointal/_media/python:cours:mementopython3-english.pdf
Tutorial z Kaggle
https://www.kaggle.com/learn/python
kt0s
Bardzo ciekawie i klarownie napisane. Czekamy na kolejne części
jml
Super. Zostaje stałym czytelnikiem.
mmoskit
Pierwsza część za mną. Zobaczymy co dalej… jak na razie okazało się, że python nie jest taki straszny jak pokazują filmy przyrodnicze 🙂 Jutro przechodzę do następnej części kursu.
Ciekawa konstrukcja z którą wcześniej się nie nie spotkałem:
{code}
z1, z2 = z2, z1
{/code}
i jej opis dla ciekawskich w tym wątku:
https://stackoverflow.com/questions/14836228/is-there-a-standardized-method-to-swap-two-variables-in-python
djkormo
Słońce wstało na blogu. Cieszę się, jeśli ktoś skorzysta z takich lekcji w chmurze.