Membaca Data
BIG DATA – TK13025
Perhatikan data berikut ini.
Pendahuluan
• Praktikum Big Data bukan hanya tentang pemrograman tetapi juga
tentang memahami kumpulan data dan informasi yang diberikannya
kepada ilmuwan data untuk mengekstrak wawasan yang berguna dari
data.
• Library yang akan dipelajari pada pertemuan ini adalah numpy dan
pandas.
Numpy
• Membaca dataset menggunakan numpy
import numpy as np
• Mendefinisikan path
data_path = "[Link]"
• Mendefiniskan tipe data karena array numpy tidak dapat membaca
file dengan tipe data yang berbeda
types = ['U20', 'U10', 'U5', 'U20', 'U3', 'f4', 'f4', 'f4', 'f4', 'U10', 'i4', 'i4', 'i4', 'i4', 'i4’]
• Membaca dataset
data = [Link](data_path, dtype=types, delimiter=',', names=True)
Numpy
• Jika data disimpan di dalam folder Week2 dan namafilenya adalah
[Link]
data_path = "Week2/[Link]"
types = ['U20', 'U10', 'U5', 'U20', 'U3', 'f4', 'f4', 'f4', 'f4', 'U10', 'i4', 'i4', 'i4', 'i4', 'i4']
make Categorical (Nominal) U20
fueltype Categorical (Nominal) U10
numofdoors Numerical (Discrete) U5
bodystyle Categorical (Ordinal) U20
drivewheels Categorical (Nominal) U3
wheelbase Numerical (Continous) f4
length Numerical (Continous) f4
width Numerical (Continous) f4
height Numerical (Continous) f4
numofcylinders Categorical (Ordinal) U10
enginesize Numerical (Discrete) i4
horsepower Numerical (Discrete) i4
citympg Numerical (Discrete) i4
highwaympg Numerical (Discrete) i4
price Numerical (Discrete) i4
Menganalisis Dataset
Mengekstrak nama kolom
[Link]
Mengekstrak bentuk array dan ukurannya
print("The shape of the array is: ", [Link])
T2) Apa yang dapat dilihat?
• Berapa banyak How many entri yang dimiliki oleh array?
• Array (dataset) memiliki 205 entri yang memberikan informasi tentang 205
mobil.
• Apa yang ada disetiap baris data?
• Setiap baris memberikan informasi tentang setiap mobil
Mengekstrak entri kolom yang diberi Namanya
#Mencetak data pada kolom 'make'
print(data['make’])
Mengambil data pada kolom bodystyle
data['bodystyle']
Menganalisis harga mobil
Menganalisis harga mobil untuk keseluruhan dataset
min=[Link](data['price'])
max=[Link](data['price'])
print('Min car price:', min)
print('Max car price:', max)
print('Range: ', max-min)
Min car price: 5118
Max car price: 45400
Range: 40282
Menghitung min, max, mean dan median
kolom price
print("Min car price:", [Link](data['price']))
print("Max car price:", [Link](data['price']))
print("Mean car price:", [Link](data['price']))
print("Median car price:", [Link](data['price']))
Min car price: 5118
Max car price: 45400
Mean car price: 13300.239024390245
Median car price: 10345.0
Mempertimbangkan nilai yang dihitung di atas, wawasan apa yang
dapat Anda ekstrak? Menurut Anda, di mana sebagian besar harga
mobil akan dikelompokkan?
Min car price: 5118
Max car price: 45400
Range: 40282
Ada perbedaan substansial antara harga mobil minimum dan
maksimum.
Min car price: 5118
Max car price: 45400
Mean car price: 13300.239024390245
Median car price: 10345.0
• Nilai rata-rata dan median lebih dekat dengan harga mobil minimum,
menunjukkan bahwa sebagian besar mobil lebih dekat ke ujung
bawah harga mobil.
• Nilai mean dan median juga cukup dekat; karenanya, keduanya dapat
digunakan sebagai ukuran tendensi sentral.
Tulis kode untuk menghitung standar deviasi untuk harga mobil.
Kemudian gunakan fungsi NumPy yang sesuai untuk mengkonfirmasi
kebenaran perhitungan Anda
Tulis kode untuk menghitung standar deviasi untuk harga mobil. Kemudian gunakan fungsi NumPy yang
sesuai untuk mengkonfirmasi kebenaran perhitungan Anda
def stdUsingNumpyOnly(prices):
return [Link]([Link]([Link]([Link](prices, [Link](prices)),2))/len(prices))
def stdImplementation(prices):
meanPrice = [Link](prices)
priceDiffSq = [[Link](price-meanPrice, 2) for price in prices]
priceDiffAvg = [Link](priceDiffSq)/len(prices)
return [Link](priceDiffAvg)
print("Standard deviation using only numpy functions: ", stdUsingNumpyOnly(data['price']))
print("Standard deviation by implementing std function: ", stdImplementation(data['price']))
print("Standard deviation using NumPy's std function:", [Link](data['price']))
T8) Hitung detail mobil dengan volume mobil terkecil dan terbesar *
Volume = length * height * width
[Link](par1, par2)
carsVolume = [Link](data['length'], data['height'], data['width’])
tidak bekerja karena parameter ketiga di [Link] adalah variabel di mana output dari [Link] akan disimpan
(oleh karena itu, menimpa data['width'] dalam contoh ini).
[Link](par1, par2)
carsVolume = [Link]([Link](data['length'], data['height']), data['width'])
Temukan detail mobil dengan volume mobil terkecil
dan terbesar
carsVolume = [Link]([Link](data['length'], data['height']), data['width'])
maxVolume = [Link](carsVolume)
minVolume = [Link](carsVolume)
carWithMaxVolume = [Link](carsVolume) # [Link] Returns the indices of the maximum values along an axis.
carWithMinVolume = [Link](carsVolume)
print("Max volume:", maxVolume, " belongs to car ", data[carWithMaxVolume])
print("Min volume:", minVolume, " belongs to car ", data[carWithMinVolume])
carsVolume = [Link](data['length'], data['height'], data['width’])
tidak bekerja karena parameter ketiga di [Link] adalah variabel di mana output dari [Link] akan disimpan
(oleh karena itu, menimpa data['width'] dalam contoh ini).
#Solution2
carsVolume = data['length']* data['height']* data['width']
#Solution3
carsVolume = [Link]([Link]([data['length'], data['height'],
data['width']]), axis=0)
Temukan berbagai jenis gaya tubuh untuk
mobil di kumpulan data
print("Unique bodystyles: ", [Link](data['bodystyle']))
Temukan jumlah merek mobil yang berbeda
(kolom: makes)
uniqueCarMakes = [Link](data['make'])
print("There are ", len(uniqueCarMakes), "unique
car makes which are:", uniqueCarMakes)
Temukan ukuran mesin dan horsepower untuk mobil yang paling dan
paling tidak efisien saat dikendarai di kota dan jalan raya (yaitu, mobil
dengan perbedaan konsumsi bahan bakar terkecil dan terbesar saat
dikendarai di dalam kota dan jalan raya)
(1) Hitung perbedaan konsumsi bahan bakar saat berkendara di kota
dan jalan raya
(2) Temukan nilai minimum dan maksimum dari konsumsi bahan bakar
yang berbeda
(3) Temukan informasi terperinci tentang mobil terkait
Temukan ukuran mesin dan horsepower untuk mobil yang paling dan paling tidak efisien saat dikendarai di
kota dan jalan raya (yaitu, mobil dengan perbedaan konsumsi bahan bakar terkecil dan terbesar saat
dikendarai di dalam kota dan jalan raya)
Temukan ukuran mesin dan horsepower untuk mobil yang paling dan paling tidak efisien saat dikendarai di kota
dan jalan raya (yaitu, mobil dengan perbedaan konsumsi bahan bakar terkecil dan terbesar saat dikendarai di
dalam kota dan jalan raya)
fuelDiff = [Link](data['highwaympg'], data['citympg'])
minFuelDiff = [Link](fuelDiff)
maxFuelDiff = [Link](fuelDiff)
carWithMinFuelDiff = [Link](fuelDiff)
carWithMaxFuelDiff = [Link](fuelDiff)
print("A %s with engine size=%d and horsepower=%d has the minimum fuel difference (%d) when driven in
the city and the highway"
% (data['make'][carWithMinFuelDiff], data["enginesize"][carWithMinFuelDiff],
data['horsepower'][carWithMinFuelDiff], minFuelDiff))
print("A %s with engine size=%d and horsepower=%d has the maximum fuel difference (%d) when driven in
the city and the highway"
% (data['make'][carWithMaxFuelDiff], data["enginesize"][carWithMaxFuelDiff],
data['horsepower'][carWithMaxFuelDiff], maxFuelDiff))
Temukan merek dengan jumlah mobil terbesar dan berapa jumlahnya
Temukan merek dengan jumlah mobil terbesar dan berapa jumlahnya
makes,counts = [Link](data['make'], return_counts=True)
maxCarsSameMake = [Link](counts)
make = makes[maxCarsSameMake]
print("The company has %d %s cars " % ([Link](counts), make))
Tentukan berapa banyak mobil yang memiliki jarak sumbu roda lebih besar dari 100
Tentukan berapa banyak mobil yang memiliki jarak sumbu roda lebih besar dari 100
carsWithLargeWheelBase = np.count_nonzero(data['wheelbase']>100)
print("There are %d cars whose wheel base is greater than 100" %
(carsWithLargeWheelBase))
np.count_nonzero(data['wheelbase’]<88.6)
np.count_nonzero(data['wheelbase']==110)
Cari tahu apakah ada mobil konvertibel yang harganya kurang dari £15000
Cari tahu apakah ada mobil konvertibel yang
harganya kurang dari £15000
cheapConvertibles = data[(data['bodystyle']=="convertible") & (data['price']<15000)]
print("Details of convertibles that cost less than £15000:\n", cheapConvertibles)
Menghitung rentang interkuartil untuk harga
semua mobil
Q3P = [Link](data['price'], 75) #Third quartile
Q1P = [Link](data['price'], 25) #First quartile
IQRP = Q3P - Q1P #Inter Quartile Range
print('Price IQR:', IQRP)
Menghitung percentile range ke 50 untuk horsepower dari semua mobil
yang nilainya sama dengan kuartil ke 50
percentile50HP = [Link](data['horsepower'], 50) #50th percentile
print('Horsepower 50th percentile:', percentile50HP)
print("Median horsepower:", [Link](data['horsepower']))