Zadanie 1
Zadanie: Definujte premennú \(x=2\). Vypočítajte výrazy \(\sqrt[3]{x^8}\), \(logx{_x}{8}\), \(ln((10^3x/2))\) a zaokrúhlite ich na 3 desatinné miesta.
Riešenie:
import numpy as np
# Definícia premennej
x = 2
# Výpočet výrazov
expresion1 = x ** (8 / 3)
expresion2 = np.log10(x ** 8)
expresion3 = np.log(2 * 10 ** (3 * x))
# Zaokrúhlenie na 3 desatinné miesta
results = [round(val, 3) for val in [expresion1, expresion2, expresion3]]
print("Výsledky výrazov:", results)
## Výsledky výrazov: [6.35, 2.408, 14.509]
Zadanie 2
Zadanie: Vyriešte sústavu rovníc
2x + 3y = 0
−x + y = 1
Riešenie:
import numpy as np
# Koeficienty rovníc v maticovom tvare
A = np.array([[2, 3], [-1, 1]])
b = np.array([0, 1])
# Riešenie sústavy rovníc
solution = np.linalg.solve(A, b)
print("Riešenie sústavy rovníc (x, y):", solution)
## Riešenie sústavy rovníc (x, y): [-0.6 0.4]
Zadanie 3
Zadanie: Pomocou operácií s vektormi vypočítajte
súčet prvých 20 členov postupnosti.Zobrazte ju v grafe.
Riešenie:
import numpy as np
import matplotlib.pyplot as plt
# Vytvoření sekvence čísel od 1 do 20
n = np.arange(1, 21)
postupnost = (2 * n) ** (1 / n)
# Součet postupnosti
suma_postupnosti = np.sum(postupnost)
print("Suma prvních 20 čísel postupnosti:", suma_postupnosti)
## Suma prvních 20 čísel postupnosti: 28.738978115697392
# Grafické zobrazení postupnosti
plt.plot(n, postupnost, marker='o')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Graf postupnosti')
plt.grid(True)
plt.show()
Zadanie 4
Zadanie: Načítajte súbor údajov mtcars z balíka datasets a uložte ho do premennej s názvom dat.
Riešenie:
Zadanie 5
Zadanie: Zobrazte štruktúru objektu dat a prvých 5 riadkov. Zoznámte sa s významom jednotlivých stĺpcov.
Riešenie:
## <class 'pandas.core.frame.DataFrame'>
## Index: 32 entries, Mazda RX4 to Volvo 142E
## Data columns (total 11 columns):
## # Column Non-Null Count Dtype
## --- ------ -------------- -----
## 0 mpg 32 non-null float64
## 1 cyl 32 non-null int64
## 2 disp 32 non-null float64
## 3 hp 32 non-null int64
## 4 drat 32 non-null float64
## 5 wt 32 non-null float64
## 6 qsec 32 non-null float64
## 7 vs 32 non-null int64
## 8 am 32 non-null int64
## 9 gear 32 non-null int64
## 10 carb 32 non-null int64
## dtypes: float64(5), int64(6)
## memory usage: 3.0+ KB
## None
## mpg cyl disp hp drat ... qsec vs am gear carb
## rownames ...
## Mazda RX4 21.0 6 160.0 110 3.90 ... 16.46 0 1 4 4
## Mazda RX4 Wag 21.0 6 160.0 110 3.90 ... 17.02 0 1 4 4
## Datsun 710 22.8 4 108.0 93 3.85 ... 18.61 1 1 4 1
## Hornet 4 Drive 21.4 6 258.0 110 3.08 ... 19.44 1 0 3 1
## Hornet Sportabout 18.7 8 360.0 175 3.15 ... 17.02 0 0 3 2
##
## [5 rows x 11 columns]
Zadanie 6
Zadanie: Preveďte premennú mpg na jednotky km/l a uložte ako novú premennú kml do toho istého objektu.
Riešenie:
## mpg cyl disp hp drat ... vs am gear carb kml
## rownames ...
## Mazda RX4 21.0 6 160.0 110 3.90 ... 0 1 4 4 8.928000
## Mazda RX4 Wag 21.0 6 160.0 110 3.90 ... 0 1 4 4 8.928000
## Datsun 710 22.8 4 108.0 93 3.85 ... 1 1 4 1 9.693257
## Hornet 4 Drive 21.4 6 258.0 110 3.08 ... 1 0 3 1 9.098057
## Hornet Sportabout 18.7 8 360.0 175 3.15 ... 0 0 3 2 7.950171
##
## [5 rows x 12 columns]
Zadanie 7
Zadanie: Vytvorte logický vektor aut indikujúci, či ide o auto s automatickou prevodovkou a pomocou neho vypočítajte priemerný dojazd (v km na 1l paliva) automobilov zvlášť s automatickou a zvlášť s manuálnou prevodovkou.
Riešenie:
# Výpočet priemerov pre automatické a manuálne prevodovky
average_kml_auto = dat[dat['am'] == 1]['kml'].mean()
average_kml_manual = dat[dat['am'] == 0]['kml'].mean()
print(f"Average km/l for automatic cars: {average_kml_auto:.2f}")
## Average km/l for automatic cars: 10.37
## Average km/l for manual cars: 7.29
Zadanie 8
Zadanie: Zobrazte tabuľku všetkých áut s piatimi rýchlostnými stupňami a hmotnosťou do 3000 libier, ktorá obsahuje iba údaje o počte valcov, zdvihovom objeme a výkone motora.
Riešenie:
filtered_cars = dat[(dat['gear'] == 5) & (dat['wt'] < 3)][['cyl', 'disp', 'hp']]
print(filtered_cars)
## cyl disp hp
## rownames
## Porsche 914-2 4 120.3 91
## Lotus Europa 4 95.1 113
## Ferrari Dino 6 145.0 175
Zadanie 9
Zadanie: Vytvorte funkciu na prevod jednotiek, ktorá bude mať 3 argumenty (s názvom)[s hodnotami]: prevádzanú hodnotu (x), imperiálnu jednotku (impunit)[míľa, galón, palec, libra], smer prevodu do SI (toSI)[TRUE,FALSE], pričom zodpovedajúcimi jednotkami v metrickej sústave SI budú km, l, dm, kg. (Využite pri tom funkciu switch a automatickú konverziu módu vektora toSI z logického na numerický.)
Riešenie:
# Funkcia na konverziu:
def convert_units(x, impunit, toSI=True):
conversions = {
'mila': 1.60934,
'galon': 3.78541,
'palec': 0.0254,
'libra': 0.453592
}
factor = conversions.get(impunit, None)
if factor is None:
raise ValueError("Unknown imperial unit.")
return x * factor if toSI else x / factor
# Príklad použitia
print(convert_units(10, 'mila'))
## 16.0934
## 6.213727366498068
Zadanie 10
Zadanie: Pomocou for cyklu skonvertujte hodnoty zdvihového objemu valcov z kubických palcov na litre. Pomocou funkcie sapply preveďte hmotnosť vozidiel na tony. Zachovajte pri tom pôvodné názvy premenných a použite funkciu na prevod jednotiek z predošlej úlohy (ak ste ju úspešne urobili).
Riešenie:
# Konverzia zdvihového objemu z kubických palcov na litre
dat['disp'] = dat['disp'].apply(lambda x: convert_units(x, 'palec', toSI=True)**3)
# Konverzia hmotnosti z libier na tony
dat['wt'] = dat['wt'].apply(lambda x: convert_units(x * 2000, 'libra', toSI=True) / 1000)
print(dat[['disp', 'wt']])
## disp wt
## rownames
## Mazda RX4 67.121414 2.376822
## Mazda RX4 Wag 67.121414 2.608154
## Datsun 710 20.642981 2.104667
## Hornet 4 Drive 281.423440 2.916597
## Hornet Sportabout 764.554858 3.120713
## Valiant 186.658901 3.138857
## Duster 360 764.554858 3.238647
## Merc 240D 51.735838 2.893917
## Merc 230 45.741364 2.857630
## Merc 280 77.147737 3.120713
## Merc 280C 77.147737 3.120713
## Merc 450SE 343.782635 3.692239
## Merc 450SL 343.782635 3.383796
## Merc 450SLC 343.782635 3.429156
## Cadillac Fleetwood 1723.166114 4.762716
## Lincoln Continental 1595.051262 4.920566
## Chrysler Imperial 1395.915660 4.848898
## Fiat 128 7.987766 1.995805
## Honda Civic 7.108677 1.465102
## Toyota Corolla 5.889928 1.664683
## Toyota Corona 28.387698 2.236209
## Dodge Challenger 526.965896 3.193288
## AMC Javelin 460.385780 3.116177
## Camaro Z28 702.595369 3.483587
## Pontiac Firebird 1048.772096 3.488122
## Fiat X1-9 8.079462 1.755401
## Porsche 914-2 28.529754 1.941374
## Lotus Europa 14.094274 1.372569
## Ford Pantera L 708.634838 2.875773
## Ferrari Dino 49.958013 2.512900
## Maserati Bora 446.890000 3.238647
## Volvo 142E 29.030683 2.521972
Zadanie 11
Zadanie: Nastavte pracovný adresár a načítajte tabuľku údajov zo súboru mtcars.txt (uloženého v pracovnom adresári) do objektu typu data.frame. Dbajte pri tom na správne nastavenie parametrov importu ako počet riadkov neštrukturovaného popisu, prítomnosť názvu stĺpcov, oddelovací znak desatinných miest, znak oddelujúci stĺpce tabuľky a znak chýbajúcich hodnôt (NA). Porovnajte načítaný data frame s pôvodným dat.
Riešenie:
import os
import pandas as pd
# Nastavenie cesty k pracovnému adresáru, kde je uložený súbor mtcars.txt
os.chdir('D:\\ImportantStuff\\MPM\\Analyza dat\\10\\')
# Načítanie súboru mtcars.txt
mtcars = pd.read_csv(
'mtcars.txt',
delimiter=' ',
decimal=',',
skiprows=2,
na_values='?',
comment='"',
engine='python'
)
# Výpis informácií o oboch data frames
print("Pôvodné dáta:")
## Pôvodné dáta:
## <class 'pandas.core.frame.DataFrame'>
## Index: 32 entries, Mazda RX4 to Volvo 142E
## Data columns (total 11 columns):
## # Column Non-Null Count Dtype
## --- ------ -------------- -----
## 0 mpg 32 non-null float64
## 1 cyl 32 non-null int64
## 2 disp 32 non-null float64
## 3 hp 32 non-null int64
## 4 drat 32 non-null float64
## 5 wt 32 non-null float64
## 6 qsec 32 non-null float64
## 7 vs 32 non-null int64
## 8 am 32 non-null int64
## 9 gear 32 non-null int64
## 10 carb 32 non-null int64
## dtypes: float64(5), int64(6)
## memory usage: 4.0+ KB
## None
##
## Načítané dáta:
## <class 'pandas.core.frame.DataFrame'>
## Index: 32 entries, Mazda RX4 to Volvo 142E
## Data columns (total 11 columns):
## # Column Non-Null Count Dtype
## --- ------ -------------- -----
## 0 mpg 32 non-null float64
## 1 cyl 32 non-null int64
## 2 disp 32 non-null float64
## 3 hp 32 non-null int64
## 4 drat 32 non-null float64
## 5 wt 32 non-null float64
## 6 qsec 32 non-null float64
## 7 vs 30 non-null float64
## 8 am 32 non-null int64
## 9 gear 32 non-null int64
## 10 carb 32 non-null int64
## dtypes: float64(6), int64(5)
## memory usage: 3.0+ KB
## None
# Porovnanie štruktúr
if dat.shape == mtcars.shape and all(dat.dtypes == mtcars.dtypes):
print("Štruktúra a typy dát sú zhodné.")
else:
print("Existujú rozdiely v štruktúre alebo typoch dát.")
## Existujú rozdiely v štruktúre alebo typoch dát.