Wstęp do Data Science
Lab. nr 1 - "Powtórka operacji na tablicach i macierzach"
-
- należy utworzyć repozytorium o nazwie
wstep-do-ml-nr_albumu-lub-nazwisko
, gdzie wpisujemy odpowiednio nazwisko lub nr indeksu; będzie ono podstawą zaliczenia przedmiotu, - - w ww. repozytorium umieszczamy kolejne zrealizowane zadania w osobnych folderach i z osobnymi plikami README.md,
- - sugerowany pakiet do obliczeń to NumPy, ale można korzystać również z innych,
- - tutorial NumPy na RealPython,
- - oficjalna dokumentacja NumPy,
-
- poniższe zagadnienia powinny zostać zrealizowane (wyświetlone jako wynik działania skryptu lub skryptów) z użyciem odpowiednich funkcji wybranego pakietu (np. NumPy):
- utwórz tablicę zawierającą 10 zer,
- utwórz tablicę zawierającą 10 piątek,
- utwórz tablicę zawierającą liczby od 10 do 50,
- utwórz macierz (tablica wielowymiarowa) o wymiarach 3x3 zawierającą liczby od 0 do 8,
- utwórz macierz jednostkową o wymiarach 3x3,
- utwórz macierz o wymiarach 5x5 zawierającą liczby z dystrybucji normalnej (Gaussa),
- utwórz macierz o wymiarach 10x10 zawierającą liczby od 0,01 do 1 z krokiem 0,01,
- utwórz tablicę zawierającą 20 liniowo rozłożonych liczb między 0 a 1 (włącznie z 0 i 1),
-
utwórz tablicę zawierającą losowe liczby z przedziału (1, 25), następnie zamień ją na macierz o wymiarach 5 x 5 z tymi samymi liczbami:
- oblicz sumę wszystkich liczb w ww. macierzy,
- oblicz średnią wszystkich liczb w ww. macierzy,
- oblicz standardową dewiację dla liczb w ww. macierzy,
- oblicz sumę każdej kolumny ww. macierzy i zapisz ją do tablicy.
-
utwórz macierz o wymiarach 5x5 zawierającą losowe liczby z przedziału (0, 100) oraz:
- oblicz medianę tych liczb,
- znajdź najmniejszą liczbę tej macierzy,
- znajdź największą liczbę tej macierzy.
- utwórz macierz o wymiarach różnych od siebie i większych od 1, zawierającą losowe liczby z przedziału (0, 100) i dokonaj jej transpozycji,
- utwórz dwie macierze o odpowiednich wymiarach, większych od 2x2 i dodaj je do siebie,
- utwórz dwie macierze o odpowiednich wymiarach różnych od siebie i większych od 2, a następnie pomnóż je przez siebie za pomocą dwóch różnych funkcji (np. ‘matmul’ i ‘multiply’, proszę poczytać o różnicach w obliczaniu wyników mnożenia).
- - ściąga do pakietu Numpy w formacie pdf.
Lab. nr 2 - "Praca z plikami"
- - oficjalny tutorial dotyczący zapisu i odczytu plików w Pythonie,
- - tutorial RealPython dotyczący zapisu i odczytu plików w Pythonie, są tu ciekawe informacje m.in. o zakończeniach linii (CR i LF)
- - proste operacje na plikach w Pythonie: link nr 1 oraz link nr 2,
-
- menadżer kontekstu +
with()
przy pracy z plikami w Pythonie, - - praca z plikami za pomocą File API (JavaScript),
- - praca z plikami w aplikacjach webowych z użyciem JavaScript,
- - dane binarne i pliki w JavaScript,
- - należy utworzyć wcześniej pliki wymagane do realizacji wybranych operacji (zapis, odczyt, itp.),
- - zadanie można zrealizować przy pomocy swojego ulubionego języka programowania, program może wykonywać się w konsoli, przeglądarce, itd.
-
- należy zrealizować następujące zadania:
- należy przygotować dane, które będą zapisywane do plików; oprócz tekstowych potrzebne będą jeszcze dane w formacie JSON i CSV; wszystkie dane tworzymy za pomocą kodu!
- odczyt pliku (poprawne otwarcie i zamknięcie) oraz wyświetlenie informacji w nim zawartej (jedna linia i wiele linii),
- napisz program, który zlicza liczbę wierszy tekstu w pliku i wyświetla tę informację,
- zapisywanie danych do pliku w różnych trybach,
- zapisywanie danych do pliku w formanie JSON,
- zapisywanie danych do pliku w formanie CSV (proszę pamietać o właściwych rozszerzeniach plików!),
- zapisz pliki wynikowe w folderze 'Lab2' i umieść go w repozytorium ♥.
Lab. nr 3 - "Web Scraping i zapis danych do Excela"
-
- instalacja Beautiful Soup:
pip install beautifulsoup4
, - - dokumentacja Beautiful Soup,
-
- instalacja openpyxl:
pip install openpyxl
(do pracy z arkuszami Excela),- dokumentacja openpyxl,
- wstęp do openpyxl,
- wstęp do web scrapingu za pomocą BS4,
nie korzystamy z dystrybucji Anaconda! Można zainstalować pakiet
requests
za pomocą pip’a, -
- należy zrealizować następujące zadania:
- utwórz za pomocą openpyxl trzy arkusze o nazwach "Todos", "Linki" i "Filmweb",
-
pod adresem znajdziesz 200 zasobów typu ToDo,
pojedynczy zasób jest dostępny np. pod adresem
wygeneruj w pętli kolejne pseudolosowe adresy pojedynczych zasobów, aż do znalezienia trzech takich dla którychhttps://jsonplaceholder.typicode.com/todos/x
, gdziex
to liczba z zakresu <1, 200>,completed: true
. Zapisz w arkuszu "Todos" wartości znalezionych 'id' oraz 'title'. - dla wybranej strony internetowej napisz kod, który połączy się ze stroną, znajdzie wszystkie linki (co najmniej 10) na stronie (znacznik ‘a’ posiadający atrybut ‘href’), a następnie zapisze je do arkusza ‘Linki’,
-
dla ustalonego linku do filmu na Filmwebie, np. tego, napisz kod, który zwróci:
- nazwisko reżysera,
- datę premiery,
- boxoffice,
- ocenę filmu.
zapisz uzyskane wyniki do arkusza ‘Filmweb’.
- zapisz plik z wynikami trzech zadań w formie ‘nazwisko-grupa.xlsx’.
Zasady zaliczenia przedmiotu
- Dowolny język do realizacji zadań, tam gdzie da sie zastosować inne niż wskazane w czasie zajęć. Preferowany zestaw to Python + Django. Inne opcje po konsultacji z prowadzącym.
-
Zadanie należy zrealizować do kolejnych zajęć - max. 5 punktów,
- do tygodnia opóźnienia w realizacji zadania - max. 3 punkty,
- przekroczenie obu terminów - max. 1 punkt,
- ww. daty wskazane są w pliku z ocenami. - Zrealizowane zadanie należy umieścić na portalu GitHub (lub BitBucket) i wysłać link do prowadzącego (Slack).
- Zadanie należy zaprezentować osobiście prowadzącemu na laboratorium (zdalnie poprzet udostępnianie ekranu).
- Pierwsze laboratorium jest "rozruchowe" - można oddawać zadania, ale nie trzeba.
- Brak odpowiedniej liczby punktów spowoduje konieczność stworzenia nowych projektów.
- Do każdego zadania dobrze jest dodać pliki (dodać do repozytorium) zawierające zrzuty działającej aplikacji. Przyspieszy to proces sprawdzania.
- Brak znajomości utworzonej aplikacji powoduje obniżenie oceny.
Nowa wersja zadań będzie dostępna do końca października ♥
Pod linkiem znajduje się wersja dotychczas obowiązująca 🌝