Sve funkcionalnosti biblioteka možete naći na zvaničnim stranicama: https://pandas.pydata.org i https://numpy.org
import pandas as pd
import numpy as np
NumPy biblioteka olakšava rad sa nizovima, matricama i numeričkim izračunavanjima.
a = np.array([1, 2, 3])
M = np.array([[1, 2, 3], [4, 5, 6]], dtype='float32')
print('Niz a:')
print(a)
print('shape =', a.shape)
print('size =', a.size)
print('ndim =', a.ndim)
print('dtype =', a.dtype, end='\n\n')
print('Matrica M:')
print(M)
print('shape =', M.shape)
print('size =', M.size)
print('ndim =', M.ndim)
print('dtype =', M.dtype)
Niz a: [1 2 3] shape = (3,) size = 3 ndim = 1 dtype = int64 Matrica M: [[1. 2. 3.] [4. 5. 6.]] shape = (2, 3) size = 6 ndim = 2 dtype = float32
a1 = np.arange(1, 10, 2)
a2 = np.linspace(1, 3, 11)
a3 = np.zeros(6)
a4 = np.random.uniform(0, 1, 5)
print('a1 =', a1)
print('a2 =', a2)
print('a3 =', a3)
print('a4 =', a4)
M1 = np.ones((2, 3))
M2 = np.eye(3)
M3 = np.diag([4, 3, 2, 1])
print('\nM1 =\n', M1)
print('\nM2 =\n', M2)
print('\nM3 =\n', M3)
a1 = [1 3 5 7 9] a2 = [1. 1.2 1.4 1.6 1.8 2. 2.2 2.4 2.6 2.8 3. ] a3 = [0. 0. 0. 0. 0. 0.] a4 = [0.14911013 0.2374469 0.507397 0.3519524 0.10975132] M1 = [[1. 1. 1.] [1. 1. 1.]] M2 = [[1. 0. 0.] [0. 1. 0.] [0. 0. 1.]] M3 = [[4 0 0 0] [0 3 0 0] [0 0 2 0] [0 0 0 1]]
A = np.array([[1, 3, 5], [7, 9, 11], [13, 15, 17]])
B = np.array([[2, 4, 6], [8, 10, 12], [14, 16, 18]])
print('A + B =\n', A + B)
print('A * B =\n', A * B)
print('A @ B =\n', A @ B)
print('A.T =\n', A.T)
print('sin(A) =\n', np.sin(A))
A + B = [[ 3 7 11] [15 19 23] [27 31 35]] A * B = [[ 2 12 30] [ 56 90 132] [182 240 306]] A @ B = [[ 96 114 132] [240 294 348] [384 474 564]] A.T = [[ 1 7 13] [ 3 9 15] [ 5 11 17]] sin(A) = [[ 0.84147098 0.14112001 -0.95892427] [ 0.6569866 0.41211849 -0.99999021] [ 0.42016704 0.65028784 -0.96139749]]
x = np.array([1, 2, 3])
y = np.array([4, 5, 6])
print('Vertikalno nadovezivanje:')
print(np.vstack((x, y)))
print('\nHorizontalno nadovezivanje:')
print(np.hstack((x, y)))
print('\nSkalarni proizvod:', np.sum(x * y))
print('Minimum u x:', np.min(x))
print('Maksimum u y:', np.max(y))
print('Elementi x veći od 1.5:', x[x > 1.5])
Vertikalno nadovezivanje: [[1 2 3] [4 5 6]] Horizontalno nadovezivanje: [1 2 3 4 5 6] Skalarni proizvod: 32 Minimum u x: 1 Maksimum u y: 6 Elementi x veći od 1.5: [2 3]
Pandas biblioteka služi za rad sa tabelarnim podacima.
df = pd.DataFrame({
'ime': ['Ana', 'Marko', 'Ivana', 'Nikola', 'Jelena'],
'godine': [21, 23, 22, 24, 21],
'prosek': [9.1, 8.4, 9.7, 7.9, 8.8]
})
display(df)
| ime | godine | prosek | |
|---|---|---|---|
| 0 | Ana | 21 | 9.1 |
| 1 | Marko | 23 | 8.4 |
| 2 | Ivana | 22 | 9.7 |
| 3 | Nikola | 24 | 7.9 |
| 4 | Jelena | 21 | 8.8 |
print('Prvih nekoliko redova:')
display(df.head())
print('Osnovne informacije:')
df.info()
print('\nDeskriptivna statistika:')
display(df.describe())
Prvih nekoliko redova:
| ime | godine | prosek | |
|---|---|---|---|
| 0 | Ana | 21 | 9.1 |
| 1 | Marko | 23 | 8.4 |
| 2 | Ivana | 22 | 9.7 |
| 3 | Nikola | 24 | 7.9 |
| 4 | Jelena | 21 | 8.8 |
Osnovne informacije: <class 'pandas.core.frame.DataFrame'> RangeIndex: 5 entries, 0 to 4 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 ime 5 non-null object 1 godine 5 non-null int64 2 prosek 5 non-null float64 dtypes: float64(1), int64(1), object(1) memory usage: 248.0+ bytes Deskriptivna statistika:
| godine | prosek | |
|---|---|---|
| count | 5.00000 | 5.000000 |
| mean | 22.20000 | 8.780000 |
| std | 1.30384 | 0.683374 |
| min | 21.00000 | 7.900000 |
| 25% | 21.00000 | 8.400000 |
| 50% | 22.00000 | 8.800000 |
| 75% | 23.00000 | 9.100000 |
| max | 24.00000 | 9.700000 |
print('Kolona godine:')
display(df['godine'])
print('Kolone ime i prosek:')
display(df[['ime', 'prosek']])
Kolona godine:
0 21 1 23 2 22 3 24 4 21 Name: godine, dtype: int64
Kolone ime i prosek:
| ime | prosek | |
|---|---|---|
| 0 | Ana | 9.1 |
| 1 | Marko | 8.4 |
| 2 | Ivana | 9.7 |
| 3 | Nikola | 7.9 |
| 4 | Jelena | 8.8 |
print('Studenti sa prosekom većim od 8.5:')
display(df[df['prosek'] > 8.5])
Studenti sa prosekom većim od 8.5:
| ime | godine | prosek | |
|---|---|---|---|
| 0 | Ana | 21 | 9.1 |
| 2 | Ivana | 22 | 9.7 |
| 4 | Jelena | 21 | 8.8 |
df['polozio_uslov'] = df['prosek'] >= 8.5
display(df)
| ime | godine | prosek | polozio_uslov | |
|---|---|---|---|---|
| 0 | Ana | 21 | 9.1 | True |
| 1 | Marko | 23 | 8.4 | False |
| 2 | Ivana | 22 | 9.7 | True |
| 3 | Nikola | 24 | 7.9 | False |
| 4 | Jelena | 21 | 8.8 | True |
df2 = pd.DataFrame({
'grad': ['Beograd', 'Novi Sad', 'Niš', 'Kragujevac'],
'temperatura': [22, 20, 24, 21],
'vlaznost': [60, 65, 55, 58]
})
display(df2)
print('Prosečna temperatura:', df2['temperatura'].mean())
| grad | temperatura | vlaznost | |
|---|---|---|---|
| 0 | Beograd | 22 | 60 |
| 1 | Novi Sad | 20 | 65 |
| 2 | Niš | 24 | 55 |
| 3 | Kragujevac | 21 | 58 |
Prosečna temperatura: 21.75