Datacamp python data science toolbox (jawaban bagian 2)

Karena pemrograman adalah keterampilan yang paling baik dikembangkan melalui belajar mandiri, kami akan menggunakan platform bernama Datacamp, yang menyediakan materi pembelajaran interaktif untuk Python dan alat pemrograman ilmiah lainnya

Datacamp

Anda seharusnya sudah menerima undangan (di alamat email Imperial College Anda) untuk bergabung dengan organisasi Datacamp bernama CIVE67219 - Freight Transport (21-22)

Kami telah mengatur agar Anda menerima akses ke seluruh pustaka modul Datacamp selama enam bulan. Jangan ragu untuk mengeksplorasi lebih jauh setelah Anda menyelesaikan tugas ini

Untuk mendapatkan akses ke ruang kerja modul, Anda harus menggunakan alamat email "panjang" Imperial College Anda (mis. john. doe00@imperial. ac. uk) saat mendaftar ke Datacamp

Tugas Anda

Anda harus menyelesaikan modul berikut sebelum batas waktu tugas

  • Pengantar Python
  • Piton tingkat menengah
  • Kotak Peralatan Ilmu Data Python (Bagian 1)

Modul terdiri dari serangkaian video dan latihan pengkodean singkat, yang dapat Anda coba menggunakan lingkungan pengkodean online yang disediakan oleh Datacamp. Anda akan segera diberi tahu apakah jawaban Anda benar

Penilaian & Penandaan

Perhatikan bahwa Datacamp melacak kemajuan Anda menggunakan unit XP - Anda seharusnya dapat menerima kemungkinan total 15700 unit untuk ketiga modul ini. Anda akan menerima lebih sedikit unit jika Anda meminta petunjuk atau mengintip solusinya

Nilai Anda untuk tugas ini akan dihitung sebagai berikut

  • 20% dari tanda akan diberikan untuk penyelesaian tepat waktu dari ketiga modul
  • 80% dari tanda akan diberikan berdasarkan total unit XP Anda (sebagai proporsi dari kemungkinan total 15.700)

Studi lebih lanjut (Opsional)

Kami percaya bahwa ketiga modul ini, dikombinasikan dengan tutorial dan latihan penugasan, akan memberi Anda semua keterampilan Python yang Anda butuhkan (dan lebih banyak lagi. ) sejauh menyangkut modul ini

Namun, jika Anda ingin lebih mengembangkan keterampilan Python Anda, Anda mungkin ingin melihat kursus berikut

Selesaikan pelatihan Anda tentang dasar-dasar Python

Modul berikut mencakup serangkaian keterampilan penting yang lebih luas yang mungkin perlu Anda ketahui jika ingin menggunakan Python untuk proyek Anda sendiri

  1. Kotak Peralatan Ilmu Data Python (Bagian 2)
  2. Pengantar Visualisasi Data dengan Matplotlib
  3. Menulis Kode Python yang efisien

Analisis transportasi lebih lanjut

Modul berikut akan membantu Anda memperluas pengetahuan Anda tentang beberapa konsep teoretis yang kami bahas dalam modul ini

  1. Pengantar Analisis Jaringan dengan Python
  2. Analitik Rantai Pasokan dengan Python
  3. Vizualisasi Data Geospasial dengan Python
  4. Analisis Jaringan Menengah dengan Python

Belajar bekerja dengan kumpulan data besar

Rekayasa transportasi identik dengan analisis kumpulan data yang luas, yang seringkali memerlukan pemrosesan ekstensif sebelum dapat digunakan dalam model Anda. Langkah selanjutnya dalam pelatihan Anda adalah mempelajari cara menangani kumpulan data dunia nyata

  • Jalur Keterampilan. Mengimpor dan Membersihkan Data

Keterampilan tingkat lanjut

Anda sekarang seharusnya sudah menguasai dasar-dasar Python dengan baik. Jika Anda ingin memperluas keahlian Anda, pertimbangkan untuk menyelesaikan modul berikut

Terus kembangkan keterampilan Ilmu Data modern Anda dengan mempelajari tentang iterator dan pemahaman daftar. Baca lebih banyak

Sumber daya ini ditawarkan oleh mitra afiliasi. Jika Anda membayar untuk pelatihan, kami dapat memperoleh komisi untuk mendukung situs ini

Relevansi Karir berdasarkan Peran Data

Teknik dan alat yang tercakup dalam Python Data Science Toolbox (Bagian 2) paling mirip dengan persyaratan yang ditemukan dalam iklan pekerjaan Data Scientist

Kita dapat menggunakan perulangan for untuk mengulang daftar, string, atau objek rentang. Alasan mengapa kita dapat mengulangi objek-objek ini adalah karena objek-objek tersebut dapat diubah

Iterables

  • Contoh. Daftar, string, kamus, koneksi file semuanya dapat diubah
  • Definisi. Objek dengan metode
    1
    2
    3
    4
    5
    6
    7
    8
    6 terkait
  • Menerapkan
    1
    2
    3
    4
    5
    6
    7
    8
    _6 ke iterable menciptakan sebuah iterator. Ini sebenarnya yang dilakukan for loop di bawah tenda

Iterator

  • Definisi. Objek dengan metode
    1
    2
    3
    4
    5
    6
    7
    8
    8 terkait yang menghasilkan nilai berurutan

Untuk menyimpulkan

  • iterable adalah objek yang dapat mengembalikan iterator,
  • sedangkan iterator adalah objek yang mempertahankan status dan menghasilkan nilai berikutnya saat Anda memanggil next() padanya

Untuk membuat iterator dari iterable, yang perlu kita lakukan hanyalah menggunakan fungsi

1
2
3
4
5
6
7
8
6 dan meneruskan iterable

1
2
3
4
5
6
7
8
word = 'Da' # 'word' is a iterable
it = iter(word) # 'it' is an iterator
next(it) #returns 'D', which is the first letter in the string.
next(it) #returns 'a', which is the second letter in the string
next(it) #no letters left. it throws a iteration stop error

print(*it) #unpacks all elements of an iterator
print(*it) #note that this can only be called once

Untuk mengulangi kamus,

avengers = ['hawkeye', 'iron man', 'thor', 'quicksilver']
e = enumerate(avengers)
print(type(e)) #class 'enumerate'
e_list = list(e)
print(e_list) #[(0, 'hawkeye'), (1, 'iron man'), (2, 'thor'), (3, 'quicksilver')]

for index, value in enumerate(avengers, start = 10): # start specifies the index of the first element in the list
print(index, value)
0 diperlukan saat memanggil for loop

Untuk beralih melalui koneksi file

1
2
3
4
_
file = open('file.txt')
it = iter(file)
print(next(it)) #print the first line of the txt file
print(next(it)) #print the second line of the txt file

Menggunakan menghitung()

avengers = ['hawkeye', 'iron man', 'thor', 'quicksilver']
e = enumerate(avengers)
print(type(e)) #class 'enumerate'
e_list = list(e)
print(e_list) #[(0, 'hawkeye'), (1, 'iron man'), (2, 'thor'), (3, 'quicksilver')]

for index, value in enumerate(avengers, start = 10): # start specifies the index of the first element in the list
print(index, value)
_1 adalah fungsi yang mengambil setiap iterable sebagai objek, seperti daftar, dan mengembalikan objek pencacahan khusus, yang terdiri dari pasangan yang berisi elemen iterable asli, bersama dengan indeksnya di dalam iterable. Kita dapat menggunakan fungsi
avengers = ['hawkeye', 'iron man', 'thor', 'quicksilver']
e = enumerate(avengers)
print(type(e)) #class 'enumerate'
e_list = list(e)
print(e_list) #[(0, 'hawkeye'), (1, 'iron man'), (2, 'thor'), (3, 'quicksilver')]

for index, value in enumerate(avengers, start = 10): # start specifies the index of the first element in the list
print(index, value)
_2 untuk mengubah objek pencacah ini menjadi daftar tupel (indeks, elemen), dan mencetaknya untuk melihat isinya

1
2
3
4
5
6
7
8
avengers = ['hawkeye', 'iron man', 'thor', 'quicksilver']
e = enumerate(avengers)
print(type(e)) #class 'enumerate'
e_list = list(e)
print(e_list) #[(0, 'hawkeye'), (1, 'iron man'), (2, 'thor'), (3, 'quicksilver')]

for index, value in enumerate(avengers, start = 10): # start specifies the index of the first element in the list
print(index, value)

Menggunakan zip()

avengers = ['hawkeye', 'iron man', 'thor', 'quicksilver']
e = enumerate(avengers)
print(type(e)) #class 'enumerate'
e_list = list(e)
print(e_list) #[(0, 'hawkeye'), (1, 'iron man'), (2, 'thor'), (3, 'quicksilver')]

for index, value in enumerate(avengers, start = 10): # start specifies the index of the first element in the list
print(index, value)
3 menerima jumlah iterable yang berubah-ubah dan mengembalikan iterator tupel (list1_element1, list2_element1, list3_element1)

1
2
3
4
5
6
7
8
9
10
11
12
13
avengers = ['hawkeye', 'iron man', 'thor', 'quicksilver']
names = ['barton', 'stark', 'odinson', 'maximoff']
z = zip(avengers, names)
print(type(z)) #class 'zip'
z_list = list(z)
print(z_list) #[('hawkeye', 'barton'), ('iron man', 'stark'), ('thor', 'odinson'), ('quicksilver', 'maximoff')]

for z1, z2 in zip(avengers, names):
print(z1, z2)

#or simply use the splat operator
print(*z) #('hawkeye', 'barton'), ('iron man', 'stark'), ('thor', 'odinson'), ('quicksilver', 'maximoff')
avengers, names = zip(*z) #avengers = ('hawkeye', 'iron man', 'thor', 'quicksilver'), names = ('barton', 'stark', 'odinson', 'maximoff')

Menggunakan iterator untuk memuat file besar

Ketika file terlalu besar untuk disimpan di memori, kita dapat memuat data dalam potongan-potongan. Kita dapat melakukan operasi yang diinginkan pada satu potongan, menyimpan hasilnya, membuang potongan tersebut dan kemudian memuat potongan data berikutnya. Iterator sangat membantu dalam kasus ini

Kami menggunakan fungsi panda.

avengers = ['hawkeye', 'iron man', 'thor', 'quicksilver']
e = enumerate(avengers)
print(type(e)) #class 'enumerate'
e_list = list(e)
print(e_list) #[(0, 'hawkeye'), (1, 'iron man'), (2, 'thor'), (3, 'quicksilver')]

for index, value in enumerate(avengers, start = 10): # start specifies the index of the first element in the list
print(index, value)
_4 dan tentukan potongan dengan
avengers = ['hawkeye', 'iron man', 'thor', 'quicksilver']
e = enumerate(avengers)
print(type(e)) #class 'enumerate'
e_list = list(e)
print(e_list) #[(0, 'hawkeye'), (1, 'iron man'), (2, 'thor'), (3, 'quicksilver')]

for index, value in enumerate(avengers, start = 10): # start specifies the index of the first element in the list
print(index, value)
5

1
2
3
4
5
6
7
8
9
10
11
12
13
import pandas as pd
result = []
for chunk in pd.read_csv('data.csv', chunksize = 1000):
result.append(sum(chunk['x']))# we want to get the sum of column x
total = sum(result)
print(total)

# Another way
import pandas as pd
total = 0
for chunk in pd.read_csv('data.csv', chunksize = 1000):
total += sum(chunk['x']) # we want to get the sum of column x
print(total)

Menerapkan trik dalam kasus tweeter

word = 'Da' # 'word' is a iterable
it = iter(word) # 'it' is an iterator
next(it) #returns 'D', which is the first letter in the string.
next(it) #returns 'a', which is the second letter in the string
next(it) #no letters left. it throws a iteration stop error

print(*it) #unpacks all elements of an iterator
print(*it) #note that this can only be called once
0
word = 'Da' # 'word' is a iterable
it = iter(word) # 'it' is an iterator
next(it) #returns 'D', which is the first letter in the string.
next(it) #returns 'a', which is the second letter in the string
next(it) #no letters left. it throws a iteration stop error

print(*it) #unpacks all elements of an iterator
print(*it) #note that this can only be called once
1List Comprehensions

Pemahaman daftar dapat menciutkan loop untuk membuat daftar menjadi satu baris. Itu membuat daftar dari daftar lain, kolom DataFrame, dll. , dan lebih efisien daripada perulangan for karena hanya membutuhkan satu baris kode

Komponen yang Diperlukan

  1. Iterable
  2. Variabel iterator (mewakili anggota iterable)
  3. Ekspresi keluaran

Ketika kami memiliki daftar nomor dan kami ingin membuat daftar nomor baru, yang sama dengan daftar nomor lama kecuali bahwa setiap nomor ditambahkan 1 ke dalamnya. Alih-alih menggunakan perulangan for dalam beberapa baris, kita dapat menggunakan pemahaman daftar untuk menyelesaikan operasi ini dalam satu baris sebagai berikut

word = 'Da' # 'word' is a iterable
it = iter(word) # 'it' is an iterator
next(it) #returns 'D', which is the first letter in the string.
next(it) #returns 'a', which is the second letter in the string
next(it) #no letters left. it throws a iteration stop error

print(*it) #unpacks all elements of an iterator
print(*it) #note that this can only be called once
2
word = 'Da' # 'word' is a iterable
it = iter(word) # 'it' is an iterator
next(it) #returns 'D', which is the first letter in the string.
next(it) #returns 'a', which is the second letter in the string
next(it) #no letters left. it throws a iteration stop error

print(*it) #unpacks all elements of an iterator
print(*it) #note that this can only be called once
3

Pemahaman daftar tidak terbatas pada daftar, dan dapat digunakan pada semua iterables

word = 'Da' # 'word' is a iterable
it = iter(word) # 'it' is an iterator
next(it) #returns 'D', which is the first letter in the string.
next(it) #returns 'a', which is the second letter in the string
next(it) #no letters left. it throws a iteration stop error

print(*it) #unpacks all elements of an iterator
print(*it) #note that this can only be called once
4
word = 'Da' # 'word' is a iterable
it = iter(word) # 'it' is an iterator
next(it) #returns 'D', which is the first letter in the string.
next(it) #returns 'a', which is the second letter in the string
next(it) #no letters left. it throws a iteration stop error

print(*it) #unpacks all elements of an iterator
print(*it) #note that this can only be called once
5

Kami juga dapat mengganti loop bersarang dengan pemahaman daftar

word = 'Da' # 'word' is a iterable
it = iter(word) # 'it' is an iterator
next(it) #returns 'D', which is the first letter in the string.
next(it) #returns 'a', which is the second letter in the string
next(it) #no letters left. it throws a iteration stop error

print(*it) #unpacks all elements of an iterator
print(*it) #note that this can only be called once
6
word = 'Da' # 'word' is a iterable
it = iter(word) # 'it' is an iterator
next(it) #returns 'D', which is the first letter in the string.
next(it) #returns 'a', which is the second letter in the string
next(it) #no letters left. it throws a iteration stop error

print(*it) #unpacks all elements of an iterator
print(*it) #note that this can only be called once
7

Untuk membuat matriks dengan pemahaman daftar

word = 'Da' # 'word' is a iterable
it = iter(word) # 'it' is an iterator
next(it) #returns 'D', which is the first letter in the string.
next(it) #returns 'a', which is the second letter in the string
next(it) #no letters left. it throws a iteration stop error

print(*it) #unpacks all elements of an iterator
print(*it) #note that this can only be called once
8
word = 'Da' # 'word' is a iterable
it = iter(word) # 'it' is an iterator
next(it) #returns 'D', which is the first letter in the string.
next(it) #returns 'a', which is the second letter in the string
next(it) #no letters left. it throws a iteration stop error

print(*it) #unpacks all elements of an iterator
print(*it) #note that this can only be called once
9

Pemahaman Lanjutan

Persyaratan pada iterable

1
2
3
4
0
1
2
3
4
1

Kondisional pada ekspresi keluaran

1
2
3
4
0
1
2
3
4
3

Pemahaman kamus untuk membuat kamus

1
2
3
4
4
1
2
3
4
5

Generator

Generator sangat mirip dengan pemahaman daftar, kecuali bahwa itu tidak disimpan dalam memori dan tidak membuat daftar. Tapi kita masih bisa mengulangi generator untuk menghasilkan elemen daftar sesuai kebutuhan. Ini menjadi sangat berguna ketika Anda tidak ingin menyimpan seluruh daftar di memori

1
2
3
4
6
1
2
3
4
7

Katakanlah kita ingin mengulangi sejumlah besar bilangan bulat dari 0 hingga 10 ** 1000000

1
2
3
4
0
1
2
3
4
9

Kami juga dapat menerapkan kondisi untuk generator

1
2
3
4
0
file = open('file.txt')
it = iter(file)
print(next(it)) #print the first line of the txt file
print(next(it)) #print the second line of the txt file
1

Fungsi Pembangkit

Fungsi generator adalah fungsi yang, ketika dipanggil, menghasilkan objek generator. Ini menghasilkan urutan nilai alih-alih mengembalikan nilai tunggal. Itu didefinisikan seperti fungsi lain, kecuali bahwa itu menghasilkan nilai dengan

avengers = ['hawkeye', 'iron man', 'thor', 'quicksilver']
e = enumerate(avengers)
print(type(e)) #class 'enumerate'
e_list = list(e)
print(e_list) #[(0, 'hawkeye'), (1, 'iron man'), (2, 'thor'), (3, 'quicksilver')]

for index, value in enumerate(avengers, start = 10): # start specifies the index of the first element in the list
print(index, value)
6 sebagai pengganti
avengers = ['hawkeye', 'iron man', 'thor', 'quicksilver']
e = enumerate(avengers)
print(type(e)) #class 'enumerate'
e_list = list(e)
print(e_list) #[(0, 'hawkeye'), (1, 'iron man'), (2, 'thor'), (3, 'quicksilver')]

for index, value in enumerate(avengers, start = 10): # start specifies the index of the first element in the list
print(index, value)
7 di akhir

word = 'Da' # 'word' is a iterable
it = iter(word) # 'it' is an iterator
next(it) #returns 'D', which is the first letter in the string.
next(it) #returns 'a', which is the second letter in the string
next(it) #no letters left. it throws a iteration stop error

print(*it) #unpacks all elements of an iterator
print(*it) #note that this can only be called once
6
file = open('file.txt')
it = iter(file)
print(next(it)) #print the first line of the txt file
print(next(it)) #print the second line of the txt file
3

Contoh lain

file = open('file.txt')
it = iter(file)
print(next(it)) #print the first line of the txt file
print(next(it)) #print the second line of the txt file
4
file = open('file.txt')
it = iter(file)
print(next(it)) #print the first line of the txt file
print(next(it)) #print the second line of the txt file
5

avengers = ['hawkeye', 'iron man', 'thor', 'quicksilver']
e = enumerate(avengers)
print(type(e)) #class 'enumerate'
e_list = list(e)
print(e_list) #[(0, 'hawkeye'), (1, 'iron man'), (2, 'thor'), (3, 'quicksilver')]

for index, value in enumerate(avengers, start = 10): # start specifies the index of the first element in the list
print(index, value)
8 dan
avengers = ['hawkeye', 'iron man', 'thor', 'quicksilver']
e = enumerate(avengers)
print(type(e)) #class 'enumerate'
e_list = list(e)
print(e_list) #[(0, 'hawkeye'), (1, 'iron man'), (2, 'thor'), (3, 'quicksilver')]

for index, value in enumerate(avengers, start = 10): # start specifies the index of the first element in the list
print(index, value)
9 sebenarnya juga membuat generator di belakang layar saat dipanggil

Studi kasus. Data bank dunia________8
avengers = ['hawkeye', 'iron man', 'thor', 'quicksilver']
e = enumerate(avengers)
print(type(e)) #class 'enumerate'
e_list = list(e)
print(e_list) #[(0, 'hawkeye'), (1, 'iron man'), (2, 'thor'), (3, 'quicksilver')]

for index, value in enumerate(avengers, start = 10): # start specifies the index of the first element in the list
print(index, value)
_8_______7

Ubah kamus menjadi kerangka data

1
2
3
4
6
file = open('file.txt')
it = iter(file)
print(next(it)) #print the first line of the txt file
print(next(it)) #print the second line of the txt file
9

Gunakan generator untuk memuat file baris demi baris. Jika data sedang streaming, artinya jika lebih banyak data ditambahkan ke kumpulan data saat Anda melakukan operasi, itu akan membaca dan memproses file hingga semua baris habis

Manajer konteks. File csv

1
2
3
4
5
6
7
8
9
10
11
12
13
_0 ada di direktori saat ini untuk Anda gunakan. Untuk memulai, Anda perlu membuka koneksi ke file ini menggunakan apa yang dikenal sebagai pengelola konteks. Misalnya, perintah
1
2
3
4
5
6
7
8
9
10
11
12
13
_1 mengikat file csv
1
2
3
4
5
6
7
8
9
10
11
12
13
2 sebagai
1
2
3
4
5
6
7
8
9
10
11
12
13
3 di pengelola konteks. Di sini, pernyataan
1
2
3
4
5
6
7
8
9
10
11
12
13
_4 adalah manajer konteks, dan tujuannya adalah untuk memastikan bahwa sumber daya dialokasikan secara efisien saat membuka koneksi ke file