1. Powtórka operacji na tablicach i macierzach (wskazane Numpy).
należy utworzyć repozytorium np. o nazwie wstep-do-ml-dane-175ic lub innej identyfikującej przedmiot i grupę jednoznacznie, gdzie zamiast ‘dane’ wpisujemy nazwisko lub nr indeksu; będzie ono podstawą zaliczenia przedmiotu,
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) i:
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 (doczytać), większych od 2 i dodaj je do siebie,
utwórz dwie macierze o odpowiednich wymiarach (doczytać) 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’),
podstawowe struktury danych w Pandas - tutaj (szybkie zapoznanie się ze strukturami Series i DataFrame zawartymi w tym linku jest wkazane),
roboczy plik tekstowy ‘samochody1tys.csv’, zawierający dane z 1000 ogłoszeń motoryzacyjnych, dostępny jest na Slacku. Dane składają się z 1000 rekordów. Każdy rekord dotyczy jednego ogłoszenia motoryzacyjnego i zawiera następujące informacje: identyfikator ogłoszenia, marka samochodu, model samochodu, rok produkcji, rodzaj silnika, pojemność silnika, przebieg samochodu, cena, województwo.
do wczytania danych korzystamy z funkcji read_csv,
należy zainstalować wymagane biblioteki, najlepiej w środowisku wirtualnym,
z każdej ściągi (oprócz ‘Jupyter Notebook’) należy wybrać 5 przykładów funkcji, z kolumny drugiej i/lub trzeciej (pierwsza jest za łatwa) i je uruchomić oraz krótko opisać.
4. Web scraping i zapis do Excela
instalacja Beautiful Soup: pip install beautifulsoup4 --user (do web scrapingu),
nie korzystamy z dystrybucji Anaconda! Można zainstalować pakiet requests za pomocą pip’a,
utwórz za pomocą openpyxl trzy arkusze o nazwach “Giełda”, “Linki” i “Filmweb” (pokazane we wstępie),
pod adresem znajdziesz notowania giełdowe spółki CD Projekt Red,
wygeneruj 5 losowych kodów 3-literowych,
generowane są trzyliterowe kody do momentu aż trafi się 5, które istnieją.
inna opcja - na stronie z błędem 404 (dla nieistniejącego kodu) jest link do najbardziej pasującego rekordu, można go wyciągnąć za pomocą BS4 i stworzyć kolejne zapytanie,
napisz kod, który dla wygenerowanych wyżej trzyliterowych kodów spółki wyświetli ich aktualną cenę (Kurs), procentową zmianę (Zmiana) oraz liczbę transakcji (Transakcje),
zapisz wyniki do arkusza ‘Giełda’,
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:
reżysera,
datę premiery,
boxoffice,
ocenę filmu.
zapisz uzyskane wyniki do arkusza ‘Filmweb’
zapisz plik z wynikami trzech zadań w formie ‘nazwisko-grupa.xlsx’.
przetworzone obrazy wraz z opisem użytych funkcji należy wrzucić do pliku README.md, ale utworzonego wewnątrz folderu z daną laborką (nie do głównego).
moduły analizowane w tym zadaniu to: threading, multiprocessing i asyncio,
można użyć API od Picsum do pobierania obrazków lub innego, pozwalającego na pobieranie plików przez czas pozwalający zaobserwować różnice w szybkości ww. modułów,
należy przerobić przykłady z ww. stron i załączyć porównanie wyników czasowych.
Zasady zaliczenia przedmiotu
Dowolny język do realizacji zadania. Aczkolwiek zalecany Python i jego biblioteki, takie jak Numpy, Scipy, Matplotlib, pandas itp.
idealny byłby Jupyter Notebook - szybkie intro
aczkolwiek zrzuty z konsoli np. IPython lub standardowej też są w porządku.
Zadanie należy zrealizować do następnych zajęć - max. 5 punktów,
opóźnienie skutkuje obniżoną liczbą punktów za zadanie (-2 do tygodnia i -4 powyżej tygodnia)
Zrealizowane zadanie należy umieścić na portalu GitHub (lub BitBucket, GitLab) i wysłać link do repozytorium do prowadzącego (Slack).
Należy wykonać ww. zrzuty ekranu z wynikami i również umieścić je w repozytorium.
Zadanie należy zaprezentować osobiście prowadzącemu (najlepiej na bieżących lub kolejnych zajęciach).