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 https://jsonplaceholder.typicode.com/todos/x, gdzie x to liczba z zakresu <1, 200>,

      wygeneruj w pętli kolejne pseudolosowe adresy pojedynczych zasobów, aż do znalezienia trzech takich dla których 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

  1. 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.
  2. 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.
  3. Zrealizowane zadanie należy umieścić na portalu GitHub (lub BitBucket) i wysłać link do prowadzącego (Slack).
  4. Zadanie należy zaprezentować osobiście prowadzącemu na laboratorium (zdalnie poprzet udostępnianie ekranu).
  5. Pierwsze laboratorium jest "rozruchowe" - można oddawać zadania, ale nie trzeba.
  6. Brak odpowiedniej liczby punktów spowoduje konieczność stworzenia nowych projektów.
  7. Do każdego zadania dobrze jest dodać pliki (dodać do repozytorium) zawierające zrzuty działającej aplikacji. Przyspieszy to proces sprawdzania.
  8. 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 🌝