Tutorial Lab 1
Tutorial Lab 1
Bagian 1
Petunjuk:
Lab ini menggunakan Bahasa Pemrograman Python yang mengacu pada buku pedomanyang
digunakan di kelas. Anda bebas untuk menggunakan software apapun untuk mengerjakan
(Jupyter Notebook, JupyterLab, Google Colab, Spyder, Kaggle).
A. Numpy
Numpy memiliki beberapa fungsi built-in untuk membuat array baru, tetapi jika anda
belum terbiasa dengan numpy, anda selalu dapat membuat numpy array (1D) dari
python list.
risuto = [8, 777, 6, 4, 114514, 7, 21, 42, 888]
numpy_array = np.array(risuto)
Output:
ini adalah list biasa : [8, 777, 6, 4, 114514, 7, 21, 42, 888]
<class 'list'>
ini adalah numpy array : [8 777 6 4 114514 7 21 42 888]
<class 'numpy.ndarray'>
2. Operasi Dasar Numpy Array
Output:
elemen ke-3 : 4
original array : [8 777 6 4 114514 7 21 42 888]
appended array : [8 777 6 4 114514 7 21 42 888
9999]
Output:
rata-rata dari array: 12918.555555555555
nilai maksimum dari array: 114514
Soal 1
Cari dan tampilkan nilai median, minimum, standar deviasi, variance, dan jumlah dari
array np_risuto!
4. Sort Numpy Array
sorted_array = np.sort(numpy_array)
print(sorted_array)
Output:
[ 4 6 7 8 21 42 777 888 114514]
Output:
hasil penjumlahan: [ 1.1 6.2 21.3 ]
hasil perkalian: [ 0.1 1.2 6.3 ]
Soal 2
Carilah dan print array hasil elementwise substraction dan elementwise division dari
array a dan b di atas!
Output:
['johnny' 'jolyne' 'jonathan' 'joseph']
Output:
{'johnny': 7, 'jolyne': 6, 'jonathan': 1, 'joseph': 2}
matrix_a = np.matrix(
[[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
)
matrix_b = np.matrix(
[[1, 4, 3],
[2, 6, 6],
[7, 0, 9]]
)
# Transpose
transposed_matrix = np.transpose(matrix_a)
print('transposed:')
print(transposed_matrix)
# Invers
inversed_matrix = np.linalg.inv(matrix_b)
print('inversed:')
print(inversed_matrix)
Output:
transposed:
[[1 4 7]
[2 5 8]
[3 6 9]]
inversed:
[[ 2.25000000e+00 -1.50000000e+00 2.50000000e-01]
[ 1.00000000e+00 -5.00000000e-01 9.25185854e-18]
[-1.75000000e+00 1.16666667e+00 -8.33333333e-02]]
# dot product
print(np.dot(matrix_a , matrix_b))
# penjumlahan
print(np.add(matrix_a , matrix_b))
# pengurangan
print(np.subtract(matrix_a , matrix_b))
Output:
[[ 26 16 42]
[ 56 46 96]
[ 86 76 150]]
[[ 2 6 6]
[ 6 11 12]
[14 8 18]]
[[ 0 -2 0]
[ 2 -1 0]
[ 0 8 0]]
B. Pandas
Output:
Perhatikan bahwa index data dimulai dari 0 bukan 1. Untuk mengetahui dimensi data,
gunakan fungsi variabel name.shape
Output:
shape dataset: (193, 6)
artinya, dataset terdiri dari 193 baris dan 6 kolom
2. Menampilkan Tipe data dari tiap kolom
drinks.dtypes
Output:
country object
beer_servings int64
spirit_servings float64
wine_servings int64
total_litres_of_pure_alcohol float64
continent object
dtype: object
drinks.describe()
Output:
Fungsi describe() akan menampilkan statistik standar (mean, std, min, max) untuk
kolom/atribut bertipe kuantitatif sedangkan untuk kolom bertipe kualitatif maka informasi
yang akan ditampilkan berupa:
drinks['continent'].describe()
Output:
count 170
unique 5
top AF
freq 53
Name: continent, dtype: object
drinks['beer_servings'].describe()
Output:
count 193.000000
mean 106.160622
std 101.143103
min 0.000000
25% 20.000000
50% 76.000000
75% 188.000000
max 376.000000
Name: beer_servings, dtype: float64
drinks.corr(method='pearson')
Output:
5. Menghitung Jumlah Elemen
Pada contoh dibawah terlihat bahwa terdapat kolom dengan jumlah elemen kurang dari
jumlah baris, artinya kolom tersebut memiliki missing value.
Output:
country 193
beer_servings 193
spirit_servings 189
wine_servings 193
total_litres_of_pure_alcohol 193
continent 170
dtype: int64
6. Missing Values
Missing values adalah informasi yang tidak tersedia untuk sebuah objek (kasus). Missing
value terjadi karena informasi untuk sesuatu tentang objek tidak diberikan, sulit dicari,
atau memang informasi tersebut tidak ada. Missing Value biasanya ditandai dengan
“NA” atau “NaN” dalam sebuah data.
Output:
country 0
beer_servings 0
spirit_servings 4
wine_servings 0
total_litres_of_pure_alcohol 0
continent 23
dtype: int64
Berikut kita adalah contoh menangani missing value dengan mengganti NA/NaN dengan
nilai rata-rata atau nilai tertentu. Misalnya semua nilai NA/NaN pada kolom continent
akan diganti dengan nilai yang paling sering muncul yaitu “AF” dan semua nilai NaN
pada kolom spirit serving akan diganti dengan nilai rata-rata dari kolom tersebut.
Silahkan pelajari lebih lanjut pada link berikut:
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.dropna.htm
l
filled_drinks = drinks.copy()
average_spirit = filled_drinks['spirit_servings'].mean()
filled_drinks['spirit_servings'].fillna(average_spirit, inplace =
True)
filled_drinks['continent'].fillna('AF', inplace = True)
print('before fill:')
display(drinks.iloc[[192]])
print('after fill:')
display(filled_drinks.iloc[[192]])
Output:
Soal 3
- Buat dan tampilkan DataFrame baru yang dihasilkan dari dataset drinks
dengan mendrop row yang berisi missing value (minimal satu). hint: bisa
dilakukan dengan satu baris
drinks_sorted_by_beer_servings =
drinks.sort_values('beer_servings')
display(drinks_sorted_by_beer_servings)
Output:
Terdapat beberapa aliran untuk melakukan query pada DataFrame. Pada lab ini
digunakan query.
Output:
Soal 4
Tampilkan baris-baris pada dataset drinks dimana beer_servings nya 0 dan continent
nya AS.
Output:
Output:
print()
Output:
# Mengambil Row 2
row_2 = drinks.iloc[2]
display(row_2)
Output:
country Algeria
beer_servings 25
spirit_servings 0
wine_servings 14
total_litres_of_pure_alcohol 0.7
continent AF
Name: 2, dtype: object
Output:
{'beer_servings': 25,
'continent': 'AF',
'country': 'Algeria',
'spirit_servings': 0.0,
'total_litres_of_pure_alcohol': 0.7,
'wine_servings': 14}
C. Plotting
Untuk memahami data dan memperoleh informasi yang terkandung dalam data, kita
perlu untuk menganalisis data tersebut. Salah satu bentuk analisis data adalah melihat
visualisasi data dalam bentuk graph, plot, dan lain-lain. Visualisasi data tersebut
dilakukan dengan tujuan:
● Presentasi,
● Sarana untuk mengkomunikasikan data,
● Melihat keterhubungan antar data,
● Memahami data dengan cepat.
Berikut ini berbagai bentuk visualisasi data yang dapat dibuat di Python. Anda dapat
menggunakan library pandas, numpy, matplotlib.pyplot, dan seaborn untuk melakukan
visualisasi data. Untuk tutorial ini Anda akan menggunakan tips dataset.
Output:
1. Scatter Plot
Goal: Untuk melihat keterhubungan antar dua variabel. Anda akan melakukan plotting
terhadap variabel total_bil dan tip menggunakan lmplot().
Output:
Output:
Selanjutnya, kita dapat melihat keterhubungan antara variabel total_bil dan tip
berdasarkan faktor jenis kelamin menggunakan hue = (nama_variabel).
Output:
2. Line Graphs
Goal: Melihat perubahan suatu variabel dalam jangka waktu tertentu. Anda akan
melakukan plotting pada variabel tip dan numb menggunakan plt.plot()
tips['numb'] = range(1,245)
x = tips['numb']
y = tips['tip']
# normal plot
plt.plot(x,y)
# plot with data point marker
plt.plot(x,y, marker='o', color='purple', linewidth=0.1)
plt.show()
Output:
3. Bar Charts
sns.set_style("whitegrid")
tips = sns.load_dataset("tips")
sns.barplot(x="day", y="total_bill", data=tips)
plt.show()
Output:
Soal 5
4. Histograms
Goal: Menampilkan distribusi frekuensi dari satu variabel kuantitatif dengan memisahkan
data berdasarkan range. Anda akan melakukan plotting terhadap variabel total_bil
menggunakan hist().
Output:
Soal 6
Tampilkan histogram plot wine servings dari negara di EU, dari dataset drinks.
5. Box Plots
● Nilai minimum
● Nilai Q1
● Nilai median / Q2
● Nilai Q3
● Nilai maksimum
Anda akan melakukan plotting pada variabel day dan tip menggunakan boxplot().
Selain itu anda juga dapat memperoleh informasi mengenai data outlier. Seperti pada
gambar di bawah ini, terdapat titik-titik kecil hitam yang merupakan data outlier.
Output:
6. Plotting Dimensi Tinggi
Untuk melakukan plotting dimensi tinggi (lebih dari 4), kita dapat menggunakan
scatterplot matrix. Plot dibawah menunjukan scatter plot 2D dari setiap pasangan atribut.
Output: