☠-es feladatsor 04

  • A megoldás tartalmazza a megoldandó feladat szövegét a megoldásnotebook első markdown cellájában!
  • Kommentekkel, illetve markdown cellákkal magyarázd, hogy éppen mit csinál az adott kódrészlet!
  • Magyarázat nélkül a beküldött feladatok csak fél feladatnak számítanak!
  • Az elkészített ábrák minden esetben rendelkezzenek ábrafeliratokkal (cím, tengelyfeliratok és − amennyiben indokolt − jelmagyarázat)! Amennyiben a beadott ábrákon nincsenek feliratok, az adott feladat automatikusan csak fél feladatnak számít!
  • A beadott notebookok Kernel -> Restart&Run All hatására a beadott formát reprodukálják!

☠ 04/01. feladat

  1. Töltsük be egy pandas dataframebe az ezen a linken található csv (comma-separated-values) fájlt és írassuk ki az első 5 sorát!
  2. Határozzuk meg, hogy oszloponként hány hiányzó elem található!
  3. Írassunk ki ötöt azon sorok közül, melyekben hiányzó elem található!
  4. Cseréljük le a hiányzó elemeket a 'nincs' szóra!
  5. Adjunk még egy oszlopot a dataframehez! Legyen a neve 'ujoszlop' értéke pedig az utasszámok gyöke!

☠ 04/02. feladat

Reprodukáljuk részben a Gapminder projekt nevű interaktív gazdasági és szociális adatokat megjelenítő interaktív eszközét!

Készítsünk az itt megtalálható adatok alapján egy pandas adatbázist ami tartalmazza az országok várható életkor adatait és a GDP adatait. Ezen kívül minden országról tároljuk el a következő atribútumokat:

  • össz népesség
  • fő vallás
  • melyik kontinensen van

Ábrázoljuk minden országban a várható életkort a GDP függvényében. Az országokat jellemző marker méretét állítsuk be a népességük alapján. A markerek szinezését, hasonlóan a Gapminderhez lehessen változtatni. Egy legördülő menü alapján döntse el a program hogy az országokat vallás vagy kontinens alapján szinez.

☠ 04/03. feladat

A Twitter szociális hálózaton a publikus üzeneteket egy részét bárki ingyen letöltheti. Ezekből néhányat megtalálhatsz a data/twitter_sample.gz fájlban.

Először olvasd be a tömörített fájl sorait egy listába a következő parancs segítségével:

import gzip
l=[json.loads(str(s).strip("\r\n")) for s in gzip.open("../data/twitter_sample.gz",mode="rt").readlines()]

A created_at nevű oszlop tartalmazza az üzenetek feladási dátumát. Ábrázold ez alapján, melyik percben hány darab tweetet adtak fel a felhasználók! Használd a datetime modul strptime() és strftime() függvényeit, melyeknek itt és itt tudsz utánaolvasni.

Figyelj arra, hogy nem minden sorban van created_at mező, az adatot nem tartalmazó sorokat ki kell dobni az adatokból!

☠ 04/04. feladat

Lássuk be a sympy segítségével a következő azonosságot!

$$ \int_{-\infty}^\infty \frac{\mathrm{e}^{-x^2}}{(x-y)^2+1}\mathrm{dx}=\Re \left(\mathrm{e}^{-(\mathrm{i} + y)^2} \pi\,\mathrm{erfc}(1 - \mathrm{i} y)\right) $$

Ahol $\Re$ a valósrész-képzést jelenti, továbbá $\mathrm{erfc}(x)$ a komplementer hibafüggvény.

☠ 04/05. feladat

Határozzuk meg az ábrán vázolt végtelen kétatomos egydimenziós lánc rezgési módusait, azaz a fonon diszperziós relációját analitikusan sympy segítségével! Alkalmazzuk a Matrix osztályt!

☠ 04/06. feladat

Számítsuk ki a sympy segítségével, hogy mekkora felületet metsz ki Viviani-görbe a gömbből!