Meskipun basis data menawarkan cara yang sangat efisien untuk menyimpan data dan melakukan kueri menggunakan bahasa kueri, cara paling fleksibel untuk memproses data adalah dengan menulis program Anda sendiri untuk memanipulasi data. Dalam banyak kasus, melakukan kueri basis data akan lebih efektif. Namun, dalam beberapa kasus di mana pemrosesan data yang lebih kompleks diperlukan, hal tersebut tidak dapat dilakukan dengan mudah menggunakan SQL.
Pemrosesan data dapat diprogram dalam bahasa pemrograman apa pun, tetapi ada beberapa bahasa yang lebih tinggi tingkatannya dalam hal bekerja dengan data. Para ilmuwan data biasanya lebih memilih salah satu dari bahasa berikut:
Sementara basis data menawarkan cara yang sangat efisien untuk menyimpan data dan mengkueri mereka menggunakan bahasa kueri, cara pengolahan data yang paling fleksibel adalah menulis program Anda sendiri untuk memanipulasi data. Dalam banyak kasus, melakukan kueri basis data akan menjadi cara yang lebih efektif. Namun dalam beberapa kasus ketika pengolahan data yang lebih kompleks diperlukan, hal itu tidak dapat dilakukan dengan mudah menggunakan SQL.
Pengolahan data dapat diprogram dalam bahasa pemrograman apa pun, tetapi ada bahasa tertentu yang lebih tinggi tingkatnya dengan respect terhadap bekerja dengan data. Ilmuwan data biasanya lebih menyukai salah satu dari bahasa berikut:
* **[Python](https://www.python.org/)**, bahasa pemrograman umum yang sering dianggap sebagai salah satu pilihan terbaik untuk pemula karena kesederhanaannya. Python memiliki banyak pustaka tambahan yang dapat membantu Anda menyelesaikan banyak masalah praktis, seperti mengekstrak data dari arsip ZIP, atau mengonversi gambar menjadi skala abu-abu. Selain ilmu data, Python juga sering digunakan untuk pengembangan web.
* **[R](https://www.r-project.org/)** adalah alat tradisional yang dikembangkan dengan pemrosesan data statistik dalam pikiran. R juga memiliki repositori pustaka yang besar (CRAN), menjadikannya pilihan yang baik untuk pemrosesan data. Namun, R bukanlah bahasa pemrograman umum dan jarang digunakan di luar domain ilmu data.
* **[Julia](https://julialang.org/)** adalah bahasa lain yang dikembangkan khusus untuk ilmu data. Julia dirancang untuk memberikan kinerja yang lebih baik daripada Python, menjadikannya alat yang hebat untuk eksperimen ilmiah.
* **[Python](https://www.python.org/)**, bahasa pemrograman tujuan umum, yang sering dianggap sebagai salah satu pilihan terbaik untuk pemula karena kesederhanaannya. Python memiliki banyak perpustakaan tambahan yang dapat membantu Anda menyelesaikan banyak masalah praktis, seperti mengekstrak data Anda dari arsip ZIP, atau mengubah gambar ke skala abu-abu. Selain untuk ilmu data, Python juga sering digunakan untuk pengembangan web.
* **[R](https://www.r-project.org/)** adalah kotak peralatan tradisional yang dikembangkan dengan pengolahan data statistik dalam pikiran. Ini juga mengandung repositori besar perpustakaan (CRAN), menjadikannya pilihan yang baik untuk pengolahan data. Namun, R bukan bahasa pemrograman tujuan umum, dan jarang digunakan di luar domain ilmu data.
* **[Julia](https://julialang.org/)** adalah bahasa lain yang dikembangkan khusus untuk ilmu data. Ini dimaksudkan untuk memberikan kinerja yang lebih baik daripada Python, menjadikannya alat yang hebat untuk eksperimen ilmiah.
Dalam pelajaran ini, kita akan fokus menggunakan Python untuk pemrosesan data sederhana. Kami mengasumsikan Anda sudah memiliki pemahaman dasar tentang bahasa ini. Jika Anda ingin mempelajari Python lebih dalam, Anda dapat merujuk ke salah satu sumber berikut:
Dalam pelajaran ini, kita akan fokus menggunakan Python untuk pengolahan data sederhana. Kita akan mengasumsikan pemahaman dasar terhadap bahasa tersebut. Jika Anda ingin tur yang lebih mendalam tentang Python, Anda dapat merujuk pada salah satu sumber berikut:
* [Belajar Python dengan Cara Menyenangkan menggunakan Turtle Graphics dan Fractals](https://github.com/shwars/pycourse) - Kursus pengantar Python berbasis GitHub
* [Langkah Pertama Anda dengan Python](https://docs.microsoft.com/en-us/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) di Microsoft Learn
* [Belajar Python dengan Cara Menyenangkan menggunakan Grafis Turtle dan Fraktal](https://github.com/shwars/pycourse) - Kursus pengantar cepat berbasis GitHub ke Pemrograman Python
* [Mulailah Langkah Pertama Anda dengan Python](https://docs.microsoft.com/en-us/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) Jalur Pembelajaran di [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum)
Data dapat hadir dalam berbagai bentuk. Dalam pelajaran ini, kita akan membahas tiga bentuk data - **data tabular**, **teks**, dan **gambar**.
Data dapat datang dalam berbagai bentuk. Dalam pelajaran ini, kita akan mempertimbangkan tiga bentuk data - **data tabular**, **teks** dan **gambar**.
Kami akan fokus pada beberapa contoh pemrosesan data, alih-alih memberikan gambaran lengkap tentang semua pustaka terkait. Ini akan memungkinkan Anda memahami ide utama tentang apa yang mungkin dilakukan, dan memberi Anda pemahaman tentang di mana menemukan solusi untuk masalah Anda saat membutuhkannya.
Kita akan fokus pada beberapa contoh pengolahan data, daripada memberi Anda gambaran lengkap dari semua perpustakaan terkait. Ini memungkinkan Anda mendapatkan ide utama tentang apa yang mungkin dilakukan, dan memberi Anda pemahaman tentang di mana menemukan solusi untuk masalah Anda kapan pun Anda membutuhkannya.
> **Saran paling berguna**. Ketika Anda perlu melakukan operasi tertentu pada data yang tidak Anda ketahui caranya, cobalahmencarinya di internet. [Stackoverflow](https://stackoverflow.com/) biasanya memiliki banyak contoh kode Python yang berguna untuk banyak tugas umum.
> **Nasihat yang paling berguna**. Ketika Anda perlu melakukan operasi tertentu pada data yang tidak Anda ketahui caranya, coba cari di internet. [Stackoverflow](https://stackoverflow.com/) biasanya berisi banyak contoh kode berguna dalam Python untuk banyak tugas tipikal.
Anda sudah mengenal data tabular ketika kita membahas tentang basis data relasional. Ketika Anda memiliki banyak data yang tersimpan dalam banyak tabel yang saling terhubung, menggunakan SQL untuk bekerja dengannya adalah pilihan yang masuk akal. Namun, ada banyak kasus di mana kita memiliki tabel data, dan kita perlu mendapatkan **pemahaman** atau **wawasan** tentang data tersebut, seperti distribusi, korelasi antar nilai, dll. Dalam ilmu data, sering kali kita perlu melakukan beberapa transformasi pada data asli, diikuti dengan visualisasi. Kedua langkah tersebut dapat dengan mudah dilakukan menggunakan Python.
Ada dua pustaka paling berguna dalam Python yang dapat membantu Anda menangani data tabular:
* **[Pandas](https://pandas.pydata.org/)** memungkinkan Anda memanipulasi **DataFrame**, yang mirip dengan tabel relasional. Anda dapat memiliki kolom bernama, dan melakukan berbagai operasi pada baris, kolom, dan DataFrame secara umum.
* **[Numpy](https://numpy.org/)** adalah pustaka untuk bekerja dengan **tensor**, yaitu **array** multi-dimensi. Array memiliki nilai dengan tipe dasar yang sama, dan lebih sederhana daripada DataFrame, tetapi menawarkan lebih banyak operasi matematika dan menciptakan overhead yang lebih sedikit.
## Data Tabular dan Dataframes
Ada juga beberapa pustaka lain yang perlu Anda ketahui:
* **[Matplotlib](https://matplotlib.org/)** adalah pustaka yang digunakan untuk visualisasi data dan pembuatan grafik
* **[SciPy](https://www.scipy.org/)** adalah pustaka dengan beberapa fungsi ilmiah tambahan. Kita sudah pernah membahas pustaka ini saat berbicara tentang probabilitas dan statistik
Anda sudah pernah bertemu data tabular ketika kita berbicara tentang basis data relasional. Ketika Anda memiliki banyak data, dan data tersebut terkandung dalam banyak tabel berbeda yang terhubung, memang sangat masuk akal untuk menggunakan SQL untuk bekerja dengan data tersebut. Namun, ada banyak kasus ketika kita memiliki tabel data, dan kita perlu mendapatkan **pemahaman** atau **wawasan** tentang data ini, seperti distribusi, korelasi antara nilai, dll. Dalam ilmu data, ada banyak kasus ketika kita perlu melakukan beberapa transformasi data asli, diikuti dengan visualisasi. Kedua langkah tersebut dapat dilakukan dengan mudah menggunakan Python.
Berikut adalah potongan kode yang biasanya Anda gunakan untuk mengimpor pustaka-pustaka tersebut di awal program Python Anda:
Ada dua perpustakaan paling berguna di Python yang dapat membantu Anda menangani data tabular:
* **[Pandas](https://pandas.pydata.org/)** memungkinkan Anda memanipulasi yang disebut **Dataframes**, yang serupa dengan tabel relasional. Anda dapat memiliki kolom bernama, dan melakukan berbagai operasi pada baris, kolom dan dataframe secara umum.
* **[Numpy](https://numpy.org/)** adalah perpustakaan untuk bekerja dengan **tensor**, yaitu **array** multi-dimensi. Array memiliki nilai tipe yang sama di bawahnya, dan lebih sederhana daripada dataframe, namun menawarkan operasi matematika lebih banyak, dan menghasilkan overhead lebih sedikit.
Ada juga beberapa perpustakaan lain yang harus Anda ketahui:
* **[Matplotlib](https://matplotlib.org/)** adalah perpustakaan yang digunakan untuk visualisasi data dan menggambar grafik
* **[SciPy](https://www.scipy.org/)** adalah perpustakaan dengan beberapa fungsi ilmiah tambahan. Kita sudah pernah bertemu dengan perpustakaan ini ketika membahas probabilitas dan statistik
Berikut adalah potongan kode yang biasanya Anda gunakan untuk mengimpor perpustakaan tersebut pada awal program Python Anda:
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy import ... # you need to specify exact sub-packages that you need
```
from scipy import ... # Anda perlu menentukan sub-paket yang tepat yang Anda butuhkan
```
Pandas berpusat pada beberapa konsep dasar.
### Series
### Series
**Series** adalah urutan nilai, mirip dengan daftar atau array numpy. Perbedaan utamanya adalah bahwa series juga memiliki **index**, dan ketika kita melakukan operasi pada series (misalnya, menambahkannya), index diperhitungkan. Index dapat sesederhana nomor baris integer (ini adalah index yang digunakan secara default saat membuat series dari daftar atau array), atau dapat memiliki struktur yang kompleks, seperti interval tanggal.
**Series** adalah urutan nilai, mirip dengan list atau array numpy. Perbedaan utama adalah series juga memiliki **indeks**, dan saat kita melakukan operasi pada series (misalnya, menambahkan mereka), indeks diperhitungkan. Indeks bisa sesederhana nomor baris integer (indeks ini digunakan secara default saat membuat series dari list atau array), atau bisa memiliki struktur kompleks, seperti interval tanggal.
> **Catatan**: Ada beberapa kode pengantar Pandas di notebook pendamping [`notebook.ipynb`](notebook.ipynb). Kami hanya menguraikan beberapa contoh di sini, dan Anda sangat disarankan untuk memeriksa notebook lengkapnya.
> **Catatan**: Ada beberapa kode pengantar Pandas dalam notebook yang menyertainya [`notebook.ipynb`](notebook.ipynb). Kita hanya menguraikan sebagian contoh di sini, dan Anda tentu dipersilakan untuk memeriksa notebook lengkapnya.
Misalkan kita ingin menganalisis penjualan di toko es krim kita. Mari kita buat series angka penjualan (jumlah barang yang terjual setiap hari) untuk beberapa periode waktu:
Pertimbangkan contoh: kita ingin menganalisis penjualan tempat es krim kita. Mari kita buat series angka penjualan (jumlah barang terjual setiap hari) untuk periode waktu tertentu:
Sekarang misalkan setiap minggu kita mengadakan pesta untuk teman-teman, dan kita mengambil tambahan 10 bungkus es krim untuk pesta. Kita dapat membuat series lain, diindeks berdasarkan minggu, untuk menunjukkan hal itu:
Sekarang misalkan setiap minggu kami mengadakan pesta untuk teman-teman, dan kami membawa tambahan 10 paket es krim untuk pesta. Kita bisa membuat series lain, diindeks berdasarkan minggu, untuk menunjukkan hal tersebut:
> **Catatan** bahwa kita tidak menggunakan sintaks sederhana `total_items+additional_items`. Jika kita melakukannya, kita akan mendapatkan banyak nilai `NaN` (*Not a Number*) dalam series hasil. Ini karena ada nilai yang hilang untuk beberapa titik index dalam series `additional_items`, dan menambahkan `NaN` ke apa pun menghasilkan `NaN`. Oleh karena itu, kita perlu menentukan parameter `fill_value` selama penjumlahan.
> **Catatan** bahwa kita tidak menggunakan sintaks sederhana `total_items+additional_items`. Jika kita melakukannya, kita akan menerima banyak nilai `NaN` (*Not a Number*) dalam series hasil. Ini karena ada nilai yang hilang untuk beberapa titik indeks dalam series `additional_items`, dan menambahkan `NaN` ke apa pun menghasilkan `NaN`. Oleh karena itu kita perlu menentukan parameter `fill_value` saat melakukan penambahan.
Dengan time series, kita juga dapat **mengubah sampel ulang** series dengan interval waktu yang berbeda. Misalnya, misalkan kita ingin menghitung rata-rata volume penjualan bulanan. Kita dapat menggunakan kode berikut:
Dengan deret waktu, kita juga dapat **mengambil sampel ulang** series dengan interval waktu berbeda. Misalnya, misalkan kita ingin menghitung volume penjualan rata-rata bulanan. Kita dapat menggunakan kode berikut:
```python
monthly = total_items.resample("1M").mean()
ax = monthly.plot(kind='bar')
```

```

### DataFrame
DataFrame pada dasarnya adalah kumpulan series dengan index yang sama. Kita dapat menggabungkan beberapa series menjadi satu DataFrame:
DataFrame pada dasarnya adalah kumpulan series dengan indeks yang sama. Kita dapat menggabungkan beberapa series menjadi satu DataFrame:
```python
a = pd.Series(range(1,10))
b = pd.Series(["I","like","to","play","games","and","will","not","change"],index=range(0,9))
Di sini `.T` berarti operasi mentranspos DataFrame, yaitu menukar baris dan kolom, dan operasi `rename` memungkinkan kita mengganti nama kolom agar sesuai dengan contoh sebelumnya.
Di sini `.T` berarti operasi mentransposisikan DataFrame, yaitu menukar baris dan kolom, dan operasi `rename` memungkinkan kita mengganti nama kolom agar sesuai dengan contoh sebelumnya.
Berikut adalah beberapa operasi paling penting yang dapat kita lakukan pada DataFrame:
Berikut adalah beberapa operasi terpenting yang dapat kita lakukan pada DataFrame:
**Pemilihan kolom**. Kita dapat memilih kolom individual dengan menulis `df['A']` - operasi ini mengembalikan Series. Kita juga dapat memilih subset kolom ke dalam DataFrame lain dengan menulis `df[['B','A']]` - ini mengembalikan DataFrame lain.
**Seleksi kolom**. Kita dapat memilih kolom individual dengan menulis `df['A']` - operasi ini mengembalikan sebuah Series. Kita juga dapat memilih subset kolom ke DataFrame lain dengan menulis `df[['B','A']]` - ini mengembalikan DataFrame lain.
**Menyaring** hanya baris tertentu berdasarkan kriteria. Misalnya, untuk hanya menyisakan baris dengan kolom `A` lebih besar dari 5, kita dapat menulis `df[df['A']>5]`.
**Menyaring** hanya baris tertentu berdasarkan kriteria. Misalnya, untuk meninggalkan hanya baris dengan kolom `A` lebih besar dari 5, kita dapat menulis `df[df['A']>5]`.
> **Catatan**: Cara kerja penyaringan adalah sebagai berikut. Ekspresi `df['A']<5` mengembalikan series boolean, yang menunjukkan apakah ekspresi tersebut`True` atau `False` untuk setiap elemen dari series asli `df['A']`. Ketika series boolean digunakan sebagai index, ini mengembalikan subset baris dalam DataFrame. Oleh karena itu, tidak mungkin menggunakan ekspresi boolean Python sembarang, misalnya, menulis `df[df['A']>5 and df['A']<7]` akan salah. Sebagai gantinya, Anda harus menggunakan operasi khusus `&` pada series boolean, menulis `df[(df['A']>5) & (df['A']<7)]` (*tanda kurung penting di sini*).
> **Catatan**: Cara kerja penyaringan adalah sebagai berikut. Ekspresi `df['A']<5` mengembalikan series boolean, yang menunjukkan apakah ekspresi bernilai`True` atau `False` untuk setiap elemen series asli `df['A']`. Ketika series boolean digunakan sebagai indeks, ia mengembalikan subset baris dalam DataFrame. Jadi tidak memungkinkan menggunakan ekspresi boolean Python sembarangan, misalnya menulis `df[df['A']>5 and df['A']<7]` akan salah. Sebagai gantinya, Anda harus menggunakan operasi khusus `&` pada series boolean, menulis `df[(df['A']>5) & (df['A']<7)]` (*tanda kurung sangat penting di sini*).
**Membuat kolom baru yang dapat dihitung**. Kita dapat dengan mudah membuat kolom baru yang dapat dihitung untuk DataFrame kita dengan menggunakan ekspresi intuitif seperti ini:
**Membuat kolom baru yang dapat dihitung**. Kita dapat dengan mudah membuat kolom baru yang dapat dihitung pada DataFrame kita dengan menggunakan ekspresi intuitif seperti ini:
```python
df['DivA'] = df['A']-df['A'].mean()
```
Contoh ini menghitung deviasi A dari nilai rata-ratanya. Apa yang sebenarnya terjadi di sini adalah kita menghitung series, lalu menetapkan series ini ke sisi kiri, menciptakan kolom baru. Oleh karena itu, kita tidak dapat menggunakan operasi apa pun yang tidak kompatibel dengan series, misalnya, kode di bawah ini salah:
```
Contoh ini menghitung divergensi A dari nilai rata-ratanya. Sebenarnya yang terjadi di sini adalah kita menghitung sebuah series, lalu menetapkan series ini ke sisi kiri, membuat kolom lain. Oleh karena itu, kita tidak dapat menggunakan operasi apa pun yang tidak kompatibel dengan series, misalnya kode di bawah ini salah:
```python
# Wrong code -> df['ADescr'] = "Low" if df['A'] <5else"Hi"
df['LenB'] = len(df['B']) # <-Wrong result
```
Contoh terakhir, meskipun secara sintaksis benar, memberikan hasil yang salah, karena menetapkan panjang series `B` ke semua nilai dalam kolom, dan bukan panjang elemen individual seperti yang kita maksudkan.
# Kode salah -> df['ADescr'] = "Low" jika df['A'] <5else"Hi"
df['LenB'] = len(df['B']) # <-Hasil salah
```
Contoh terakhir, walaupun secara sintaksis benar, memberikan hasil yang salah, karena menetapkan panjang series `B` ke semua nilai dalam kolom, bukan panjang dari elemen individual seperti yang kita maksud.
Jika kita perlu menghitung ekspresi kompleks seperti ini, kita dapat menggunakan fungsi `apply`. Contoh terakhir dapat ditulis sebagai berikut:
Jika kita perlu menghitung ekspresi kompleks seperti ini, kita dapat menggunakan fungsi `apply`. Contoh terakhir dapat ditulis seperti berikut:
```python
df['LenB'] = df['B'].apply(lambda x : len(x))
# or
# atau
df['LenB'] = df['B'].apply(len)
```
```
Setelah operasi di atas, kita akan mendapatkan DataFrame berikut:
Setelah operasi di atas, kita akan berakhir dengan DataFrame berikut:
| | A | B | DivA | LenB |
| --- | --- | ------ | ---- | ---- |
@ -164,22 +166,22 @@ Setelah operasi di atas, kita akan mendapatkan DataFrame berikut:
| 7 | 8 | very | 3.0 | 4 |
| 8 | 9 | much | 4.0 | 4 |
**Memilih baris berdasarkan nomor** dapat dilakukan menggunakan konstruksi`iloc`. Misalnya, untuk memilih 5 baris pertama dari DataFrame:
**Memilih baris berdasarkan nomor** dapat dilakukan menggunakan konstruk `iloc`. Misalnya, untuk memilih 5 baris pertama dari DataFrame:
```python
df.iloc[:5]
```
```
**Pengelompokan** sering digunakan untuk mendapatkan hasil yang mirip dengan *pivot table* di Excel. Misalkan kita ingin menghitung nilai rata-rata kolom `A` untuk setiap jumlah `LenB` tertentu. Maka kita dapat mengelompokkan DataFrame kita berdasarkan `LenB`, dan memanggil `mean`:
**Pengelompokan** sering digunakan untuk mendapatkan hasil mirip dengan *pivot table* di Excel. Misalkan kita ingin menghitung nilai rata-rata kolom `A` untuk setiap nilai `LenB` tertentu. Lalu kita dapat mengelompokkan DataFrame kita berdasarkan `LenB`, dan memanggil `mean`:
```python
df.groupby(by='LenB')[['A','DivA']].mean()
```
Jika kita perlu menghitung rata-rata dan jumlah elemen dalam grup, maka kita dapat menggunakan fungsi `aggregate` yang lebih kompleks:
```
Jika kita perlu menghitung rata-rata dan jumlah elemen dalam grup, maka kita dapat menggunakan fungsi `aggregate` yang lebih kompleks:
@ -190,71 +192,74 @@ Ini memberikan tabel berikut:
| 6 | 2 | 6.000000 |
### Mendapatkan Data
Kita telah melihat betapa mudahnya membangun Series dan DataFrames dari objek Python. Namun, data biasanya hadir dalam bentuk file teks atau tabel Excel. Untungnya, Pandas menawarkan cara sederhana untuk memuat data dari disk. Sebagai contoh, membaca file CSV semudah ini:
Kita telah melihat betapa mudahnya membuat Series dan DataFrame dari objek Python. Namun, data biasanya datang dalam bentuk file teks, atau tabel Excel. Untungnya, Pandas menawarkan cara sederhana untuk memuat data dari disk. Misalnya, membaca file CSV sesederhana ini:
```python
df = pd.read_csv('file.csv')
```
Kita akan melihat lebih banyak contoh memuat data, termasuk mengambilnya dari situs web eksternal, di bagian "Tantangan".
Kita akan melihat lebih banyak contoh pemuatan data, termasuk mengambil dari situs web eksternal, di bagian "Challenge"
### Mencetak dan Memvisualisasikan
### Mencetak dan Membuat Grafik
Seorang Data Scientist sering kali harus mengeksplorasi data, sehingga penting untuk dapat memvisualisasikannya. Ketika DataFrame besar, seringkali kita hanya ingin memastikan bahwa kita melakukan semuanya dengan benar dengan mencetak beberapa baris pertama. Hal ini dapat dilakukan dengan memanggil `df.head()`. Jika Anda menjalankannya dari Jupyter Notebook, itu akan mencetak DataFrame dalam bentuk tabel yang rapi.
Seorang Data Scientist sering harus mengeksplorasi data, oleh karena itu penting untuk dapat memvisualisasikannya. Ketika DataFrame besar, seringkali kita hanya ingin memastikan bahwa kita melakukan semuanya dengan benar dengan mencetak beberapa baris pertama. Ini dapat dilakukan dengan memanggil `df.head()`. Jika Anda menjalankannya dari Jupyter Notebook, itu akan mencetak DataFrame dalam bentuk tabel yang rapi.
Kita juga telah melihat penggunaan fungsi `plot` untuk memvisualisasikan beberapa kolom. Meskipun `plot` sangat berguna untuk banyak tugas, dan mendukung berbagai jenis grafik melalui parameter `kind=`, Anda selalu dapat menggunakan pustaka `matplotlib` mentah untuk membuat sesuatu yang lebih kompleks. Kita akan membahas visualisasi data secara mendetail dalam pelajaran kursus terpisah.
Kita juga telah melihat penggunaan fungsi `plot` untuk memvisualisasikan beberapa kolom. Meskipun `plot` sangat berguna untuk banyak tugas, dan mendukung banyak jenis grafik yang berbeda melalui parameter `kind=`, Anda selalu dapat menggunakan pustaka `matplotlib` mentah untuk membuat grafik yang lebih kompleks. Kita akan membahas visualisasi data secara detail dalam pelajaran kursus terpisah.
Ikhtisar ini mencakup konsep-konsep terpenting dari Pandas, namun pustaka ini sangat kaya, dan tidak ada batasan untuk apa yang dapat Anda lakukan dengannya! Sekarang mari kita terapkan pengetahuan ini untuk menyelesaikan masalah tertentu.
Ikhtisar ini mencakup konsep paling penting dari Pandas, namun perpustakaannya sangat kaya, dan tidak ada batasan untuk apa yang dapat Anda lakukan dengannya! Sekarang mari kita terapkan pengetahuan ini untuk memecahkan masalah spesifik.
## 🚀 Tantangan 1: Menganalisis Penyebaran COVID
Masalah pertama yang akan kita fokuskan adalah pemodelan penyebaran epidemi COVID-19. Untuk melakukan itu, kita akan menggunakan data tentang jumlah individu yang terinfeksi di berbagai negara, yang disediakan oleh [Center for Systems Science and Engineering](https://systems.jhu.edu/) (CSSE) di [Johns Hopkins University](https://jhu.edu/). Dataset tersedia di [Repositori GitHub ini](https://github.com/CSSEGISandData/COVID-19).
Masalah pertama yang akan kita fokuskan adalah pemodelan penyebaran epidemi COVID-19. Untuk melakukan itu, kita akan menggunakan data jumlah individu yang terinfeksi di berbagai negara, yang disediakan oleh [Center for Systems Science and Engineering](https://systems.jhu.edu/) (CSSE) di [Johns Hopkins University](https://jhu.edu/). Dataset tersedia di [Repositori GitHub ini](https://github.com/CSSEGISandData/COVID-19).
Karena kita ingin menunjukkan cara menangani data, kami mengundang Anda untuk membuka [`notebook-covidspread.ipynb`](notebook-covidspread.ipynb) dan membacanya dari atas ke bawah. Anda juga dapat mengeksekusi sel, dan melakukan beberapa tantangan yang telah kami tinggalkan untuk Anda di akhir.
Karena kita ingin menunjukkan cara menangani data, kami mengundang Anda untuk membuka [`notebook-covidspread.ipynb`](notebook-covidspread.ipynb) dan membacanya dari atas ke bawah. Anda juga dapat menjalankan sel-sel, dan melakukan beberapa tantangan yang kami tinggalkan untuk Anda di akhir.
> Jika Anda tidak tahu cara menjalankan kode di Jupyter Notebook, lihat [artikel ini](https://soshnikov.com/education/how-to-execute-notebooks-from-github/).
## Bekerja dengan Data Tidak Terstruktur
Meskipun data sering kali hadir dalam bentuk tabel, dalam beberapa kasus kita perlu menangani data yang kurang terstruktur, misalnya teks atau gambar. Dalam kasus ini, untuk menerapkan teknik pemrosesan data yang telah kita lihat sebelumnya, kita perlu **mengekstrak** data terstruktur. Berikut beberapa contohnya:
Meskipun data seringkali datang dalam bentuk tabel, dalam beberapa kasus kita perlu menangani data yang kurang terstruktur, misalnya, teks atau gambar. Dalam kasus ini, untuk menerapkan teknik pemrosesan data yang telah kita lihat di atas, kita perlu **mengekstrak** data terstruktur. Berikut beberapa contohnya:
* Mengekstrak kata kunci dari teks, dan melihat seberapa sering kata kunci tersebut muncul
* Menggunakan jaringan saraf untuk mengekstrak informasi tentang objek dalam gambar
* Mendapatkan informasi tentang emosi orang dari umpan kamera video
* Menggunakan jaringan neural untuk mengekstrak informasi tentang objek pada gambar
* Mendapatkan informasi tentang emosi orang dari rekaman kamera video
## 🚀 Tantangan 2: Menganalisis Makalah COVID
Dalam tantangan ini, kita akan melanjutkan topik pandemi COVID, dan fokus pada pemrosesan makalah ilmiah tentang subjek tersebut. Ada [Dataset CORD-19](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge) dengan lebih dari 7000 (pada saat penulisan) makalah tentang COVID, tersedia dengan metadata dan abstrak (dan untuk sekitar setengahnya juga disediakan teks lengkap).
Dalam tantangan ini, kita akan melanjutkan dengan topik pandemi COVID, dan fokus pada pemrosesan makalah ilmiah tentang subjek tersebut. Ada [Dataset CORD-19](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge) dengan lebih dari 7000 (pada saat tulisan ini dibuat) makalah tentang COVID, tersedia dengan metadata dan abstrak (dan untuk sekitar setengahnya juga disediakan teks lengkap).
Contoh lengkap analisis dataset ini menggunakan layanan kognitif [Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum) dijelaskan [dalam posting blog ini](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/). Kita akan membahas versi analisis yang disederhanakan.
Contoh lengkap analisis dataset ini menggunakan layanan kognitif [Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum) dijelaskan [dalam posting blog ini](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/). Kita akan membahas versi sederhana dari analisis ini.
> **NOTE**: Kami tidak menyediakan salinan dataset sebagai bagian dari repositori ini. Anda mungkin perlu mengunduh file [`metadata.csv`](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) dari [dataset ini di Kaggle](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge). Pendaftaran dengan Kaggle mungkin diperlukan. Anda juga dapat mengunduh dataset tanpa pendaftaran [dari sini](https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html), tetapi itu akan mencakup semua teks lengkap selain file metadata.
> **CATATAN**: Kami tidak menyediakan salinan dataset sebagai bagian dari repositori ini. Anda mungkin harus mengunduh terlebih dahulu file [`metadata.csv`](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) dari [dataset ini di Kaggle](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge). Pendaftaran di Kaggle mungkin diperlukan. Anda juga dapat mengunduh dataset tanpa pendaftaran [dari sini](https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html), tetapi itu akan mencakup semua teks lengkap selain file metadata.
Buka [`notebook-papers.ipynb`](notebook-papers.ipynb) dan bacalah dari atas ke bawah. Anda juga dapat mengeksekusi sel, dan melakukan beberapa tantangan yang telah kami tinggalkan untuk Anda di akhir.
Buka [`notebook-papers.ipynb`](notebook-papers.ipynb) dan baca dari atas ke bawah. Anda juga dapat menjalankan sel-sel, dan melakukan beberapa tantangan yang kami tinggalkan untuk Anda di akhir.

Baru-baru ini, model AI yang sangat kuat telah dikembangkan yang memungkinkan kita memahami gambar. Ada banyak tugas yang dapat diselesaikan menggunakan jaringan saraf yang telah dilatih sebelumnya, atau layanan cloud. Beberapa contohnya termasuk:
Baru-baru ini, model AI yang sangat kuat telah dikembangkan yang memungkinkan kita memahami gambar. Ada banyak tugas yang dapat diselesaikan menggunakan jaringan neural yang telah dilatih sebelumnya, atau layanan cloud. Beberapa contohnya termasuk:
* **Klasifikasi Gambar**, yang dapat membantu Anda mengategorikan gambar ke dalam salah satu kelas yang telah ditentukan. Anda dapat dengan mudah melatih pengklasifikasi gambar Anda sendiri menggunakan layanan seperti [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum)
* **Deteksi Objek** untuk mendeteksi berbagai objek dalam gambar. Layanan seperti [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) dapat mendeteksi sejumlah objek umum, dan Anda dapat melatih model [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) untuk mendeteksi beberapa objek spesifik yang menarik.
* **Deteksi Wajah**, termasuk deteksi Usia, Jenis Kelamin, dan Emosi. Hal ini dapat dilakukan melalui [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum).
* **Klasifikasi Gambar**, yang dapat membantu Anda mengkategorikan gambar ke dalam salah satu kelas yang telah ditentukan. Anda dapat dengan mudah melatih pengklasifikasi gambar sendiri menggunakan layanan seperti [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum)
* **Deteksi Objek** untuk mendeteksi objek yang berbeda pada gambar. Layanan seperti [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) dapat mendeteksi sejumlah objek umum, dan Anda dapat melatih model [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) untuk mendeteksi beberapa objek spesifik yang diminati.
* **Deteksi Wajah**, termasuk deteksi Usia, Jenis Kelamin dan Emosi. Ini dapat dilakukan melalui [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum).
Semua layanan cloud tersebut dapat dipanggil menggunakan [Python SDKs](https://docs.microsoft.com/samples/azure-samples/cognitive-services-python-sdk-samples/cognitive-services-python-sdk-samples/?WT.mc_id=academic-77958-bethanycheum), dan dengan demikian dapat dengan mudah dimasukkan ke dalam alur kerja eksplorasi data Anda.
Semua layanan cloud tersebut dapat dipanggil menggunakan [SDK Python](https://docs.microsoft.com/samples/azure-samples/cognitive-services-python-sdk-samples/cognitive-services-python-sdk-samples/?WT.mc_id=academic-77958-bethanycheum), dan dengan demikian dapat dengan mudah diintegrasikan ke dalam alur kerja eksplorasi data Anda.
Berikut beberapa contoh eksplorasi data dari sumber data gambar:
* Dalam posting blog [Cara Belajar Data Science Tanpa Coding](https://soshnikov.com/azure/how-to-learn-data-science-without-coding/) kita mengeksplorasi foto Instagram, mencoba memahami apa yang membuat orang memberikan lebih banyak suka pada sebuah foto. Kita pertama-tama mengekstrak sebanyak mungkin informasi dari gambar menggunakan [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum), dan kemudian menggunakan [Azure Machine Learning AutoML](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml/?WT.mc_id=academic-77958-bethanycheum) untuk membangun model yang dapat diinterpretasikan.
* Dalam [Workshop Studi Wajah](https://github.com/CloudAdvocacy/FaceStudies) kita menggunakan [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) untuk mengekstrak emosi orang dalam foto dari acara, untuk mencoba memahami apa yang membuat orang bahagia.
Berikut beberapa contoh eksplorasi data dari sumber data Gambar:
* Dalam posting blog [Cara Belajar Data Science tanpa Coding](https://soshnikov.com/azure/how-to-learn-data-science-without-coding/) kami menjelajahi foto Instagram, mencoba memahami apa yang membuat orang memberikan lebih banyak suka pada sebuah foto. Kami pertama-tama mengekstrak sebanyak mungkin informasi dari gambar menggunakan [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum), dan kemudian menggunakan [Azure Machine Learning AutoML](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml/?WT.mc_id=academic-77958-bethanycheum) untuk membangun model yang dapat diinterpretasikan.
* Dalam [Facial Studies Workshop](https://github.com/CloudAdvocacy/FaceStudies) kami menggunakan [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) untuk mengekstrak emosi orang pada foto-foto dari acara, untuk mencoba memahami apa yang membuat orang bahagia.
## Kesimpulan
Apakah Anda sudah memiliki data terstruktur atau tidak terstruktur, menggunakan Python Anda dapat melakukan semua langkah terkait pemrosesan dan pemahaman data. Ini mungkin cara paling fleksibel untuk pemrosesan data, dan itulah alasan sebagian besar data scientist menggunakan Python sebagai alat utama mereka. Mempelajari Python secara mendalam mungkin merupakan ide yang baik jika Anda serius dengan perjalanan data science Anda!
Baik Anda sudah memiliki data terstruktur atau tidak terstruktur, menggunakan Python Anda dapat melakukan semua langkah yang terkait dengan pemrosesan dan pemahaman data. Ini mungkin cara paling fleksibel dalam pemrosesan data, dan itulah alasan mengapa sebagian besar data scientist menggunakan Python sebagai alat utama mereka. Mempelajari Python secara mendalam mungkin ide yang baik jika Anda serius dalam perjalanan data science Anda!
## [Kuis setelah pelajaran](https://ff-quizzes.netlify.app/en/ds/quiz/13)
## [Kuis setelah kuliah](https://ff-quizzes.netlify.app/en/ds/quiz/13)
## Tinjauan & Studi Mandiri
## Ulasan & Belajar Mandiri
**Buku**
* [Wes McKinney. Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython](https://www.amazon.com/gp/product/1491957662)
@ -264,18 +269,20 @@ Apakah Anda sudah memiliki data terstruktur atau tidak terstruktur, menggunakan
* [Dokumentasi tentang Visualisasi Pandas](https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html)
**Belajar Python**
* [Belajar Python dengan Cara Menyenangkan menggunakan Turtle Graphics dan Fractals](https://github.com/shwars/pycourse)
* [Belajar Python dengan Cara Menyenangkan menggunakan Turtle Graphics dan Fraktal](https://github.com/shwars/pycourse)
* [Ambil Langkah Pertama Anda dengan Python](https://docs.microsoft.com/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) Jalur Pembelajaran di [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum)
## Tugas
[Lakukan studi data yang lebih mendetail untuk tantangan di atas](assignment.md)
[Lakukan studi data yang lebih rinci untuk tantangan di atas](assignment.md)
## Kredit
Pelajaran ini telah ditulis dengan ♥️ oleh [Dmitry Soshnikov](http://soshnikov.com)
Pelajaran ini ditulis dengan ♥️ oleh [Dmitry Soshnikov](http://soshnikov.com)
---
**Penafian**:
Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berupaya untuk memberikan hasil yang akurat, harap diperhatikan bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang berwenang. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan manusia profesional. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Penafian**:
Dokumen ini telah diterjemahkan menggunakan layanan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berupaya untuk mencapai akurasi, harap diketahui bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang sah. Untuk informasi penting, disarankan menggunakan terjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
Walaupun pangkalan data menawarkan cara yang sangat efisien untuk menyimpan data dan membuat pertanyaan menggunakan bahasa pertanyaan, cara yang paling fleksibel untuk memproses data adalah dengan menulis program anda sendiri untuk memanipulasi data. Dalam banyak kes, membuat pertanyaan pangkalan data mungkin lebih berkesan. Namun, dalam beberapa kes apabila pemprosesan data yang lebih kompleks diperlukan, ia tidak dapat dilakukan dengan mudah menggunakan SQL.
Pemprosesan data boleh diprogramkan dalam mana-mana bahasa pengaturcaraan, tetapi terdapat beberapa bahasa yang lebih tinggi tahapnya dalam bekerja dengan data. Saintis data biasanya memilih salah satu daripada bahasa berikut:
Walaupun pangkalan data menawarkan cara yang sangat cekap untuk menyimpan data dan membuat pertanyaan menggunakan bahasa pertanyaan, cara paling fleksibel untuk pemprosesan data adalah menulis program anda sendiri untuk memanipulasi data. Dalam banyak kes, melakukan pertanyaan pangkalan data adalah cara yang lebih berkesan. Namun dalam beberapa kes apabila pemprosesan data yang lebih kompleks diperlukan, ia tidak boleh dilakukan dengan mudah menggunakan SQL.
Pemprosesan data boleh diprogram dalam mana-mana bahasa pengaturcaraan, tetapi terdapat bahasa tertentu yang lebih tinggi tahapnya dalam hal bekerja dengan data. Ahli sains data biasanya memilih salah satu daripada bahasa berikut:
* **[Python](https://www.python.org/)**, bahasa pengaturcaraan serba guna, yang sering dianggap sebagai salah satu pilihan terbaik untuk pemula kerana kesederhanaannya. Python mempunyai banyak perpustakaan tambahan yang boleh membantu anda menyelesaikan banyak masalah praktikal, seperti mengekstrak data anda daripada arkib ZIP, atau menukar gambar kepada skala kelabu. Selain sains data, Python juga sering digunakan untuk pembangunan web.
* **[R](https://www.r-project.org/)** adalah alat tradisional yang dibangunkan dengan pemprosesan data statistik dalam fikiran. Ia juga mengandungi repositori perpustakaan yang besar (CRAN), menjadikannya pilihan yang baik untuk pemprosesan data. Walau bagaimanapun, R bukanlah bahasa pengaturcaraan serba guna, dan jarang digunakan di luar domain sains data.
* **[Julia](https://julialang.org/)** adalah bahasa lain yang dibangunkan khusus untuk sains data. Ia bertujuan memberikan prestasi yang lebih baik daripada Python, menjadikannya alat yang hebat untuk eksperimen saintifik.
* **[Python](https://www.python.org/)**, bahasa pengaturcaraan tujuan umum, yang sering dianggap sebagai salah satu pilihan terbaik untuk pemula kerana kesederhanaannya. Python mempunyai banyak perpustakaan tambahan yang boleh membantu anda menyelesaikan banyak masalah praktikal, seperti mengekstrak data anda daripada arkib ZIP, atau menukar gambar ke skala kelabu. Selain sains data, Python juga sering digunakan untuk pembangunan web.
* **[R](https://www.r-project.org/)** adalah kotak alat tradisional yang dibangunkan dengan pemprosesan data statistik dalam fikiran. Ia juga mengandungi repositori besar perpustakaan (CRAN), menjadikannya pilihan yang baik untuk pemprosesan data. Namun, R bukan bahasa pengaturcaraan tujuan umum, dan jarang digunakan di luar domain sains data.
* **[Julia](https://julialang.org/)** adalah bahasa lain yang dibangunkan khusus untuk sains data. Ia bertujuan memberikan prestasi yang lebih baik daripada Python, menjadikannya alat hebat untuk eksperimen saintifik.
Dalam pelajaran ini, kita akan memberi tumpuan kepada penggunaan Python untuk pemprosesan data yang mudah. Kami akan mengandaikan anda sudah mempunyai pengetahuan asas tentang bahasa ini. Jika anda ingin mendalami Python, anda boleh merujuk kepada salah satu sumber berikut:
Dalam pelajaran ini, kita akan fokus menggunakan Python untuk pemprosesan data yang mudah. Kami akan menganggap anda mempunyai kefahaman asas tentang bahasa ini. Jika anda mahukan pengenalan lebih mendalam tentang Python, anda boleh merujuk salah satu daripada sumber berikut:
* [Belajar Python dengan Cara Menarik menggunakan Grafik Turtle dan Fraktal](https://github.com/shwars/pycourse) - Kursus pengenalan pantas berasaskan GitHub ke dalam Pengaturcaraan Python
* [Belajar Python dengan Cara yang Menyeronokkan menggunakan Grafik Turtle dan Fraktal](https://github.com/shwars/pycourse) - Kursus pengenalan pantas berbasis GitHub ke Pengaturcaraan Python
* [Ambil Langkah Pertama Anda dengan Python](https://docs.microsoft.com/en-us/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) Laluan Pembelajaran di [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum)
Data boleh datang dalam pelbagai bentuk. Dalam pelajaran ini, kita akan mempertimbangkan tiga bentuk data - **data tabular**, **teks**, dan **imej**.
Data boleh datang dalam pelbagai bentuk. Dalam pelajaran ini, kita akan membincangkan tiga bentuk data - **data tabular**, **teks** dan **imej**.
Kami akan memberi tumpuan kepada beberapa contoh pemprosesan data, bukannya memberikan gambaran penuh tentang semua perpustakaan berkaitan. Ini akan membolehkan anda memahami idea utama tentang apa yang mungkin dilakukan, dan meninggalkan anda dengan pemahaman tentang di mana untuk mencari penyelesaian kepada masalah anda apabila anda memerlukannya.
Kita akan fokus pada beberapa contoh pemprosesan data, daripada memberikan gambaran penuh tentang semua perpustakaan berkaitan. Ini membolehkan anda memahami idea utama tentang apa yang mungkin dilakukan, dan memberikan kefahaman tentang di mana mencari penyelesaian untuk masalah anda apabila diperlukan.
> **Nasihat paling berguna**. Apabila anda perlu melakukan operasi tertentu pada data yang anda tidak tahu bagaimana untuk melakukannya, cuba cari di internet. [Stackoverflow](https://stackoverflow.com/) biasanya mengandungi banyak contoh kod berguna dalam Python untuk banyak tugas biasa.
> **Nasihat yang paling berguna**. Apabila anda perlu melakukan operasi tertentu pada data yang anda tidak tahu caranya, cuba cari di internet. [Stackoverflow](https://stackoverflow.com/) biasanya mengandungi banyak contoh kod berguna dalam Python untuk banyak tugas tipikal.
Anda sudah bertemu dengan data tabular apabila kita bercakap tentang pangkalan data relasi. Apabila anda mempunyai banyak data, dan ia terkandung dalam banyak jadual yang saling berkaitan, ia sememangnya masuk akal untuk menggunakan SQL untuk bekerja dengannya. Walau bagaimanapun, terdapat banyak kes apabila kita mempunyai jadual data, dan kita perlu mendapatkan beberapa **pemahaman** atau **wawasan** tentang data ini, seperti taburan, korelasi antara nilai, dan sebagainya. Dalam sains data, terdapat banyak kes apabila kita perlu melakukan beberapa transformasi pada data asal, diikuti dengan visualisasi. Kedua-dua langkah ini boleh dilakukan dengan mudah menggunakan Python.
Anda sudah pernah bertemu data tabular apabila kita membincangkan pangkalan data berhubung. Apabila anda mempunyai banyak data, dan ia terkandung dalam banyak jadual berhubung yang berbeza, memang masuk akal menggunakan SQL untuk bekerja dengannya. Namun, terdapat banyak kes apabila kita mempunyai jadual data, dan kita perlu mendapatkan **pemahaman** atau **insight** tentang data ini, seperti taburan, korelasi antara nilai, dan sebagainya. Dalam sains data, terdapat banyak kes apabila kita perlu melakukan beberapa transformasi data asal, diikuti dengan visualisasi. Kedua-dua langkah ini boleh dilakukan dengan mudah menggunakan Python.
Terdapat dua perpustakaan paling berguna dalam Python yang boleh membantu anda menangani data tabular:
* **[Pandas](https://pandas.pydata.org/)** membolehkan anda memanipulasi **Dataframe**, yang serupa dengan jadual relasi. Anda boleh mempunyai lajur bernama, dan melakukan pelbagai operasi pada baris, lajur, dan dataframe secara umum.
* **[Numpy](https://numpy.org/)** adalah perpustakaan untuk bekerja dengan **tensor**, iaitu **array** berbilang dimensi. Array mempunyai nilai jenis asas yang sama, dan ia lebih mudah daripada dataframe, tetapi ia menawarkan lebih banyak operasi matematik, dan menghasilkan kurang overhead.
Terdapat dua perpustakaan yang paling berguna dalam Python yang boleh membantu anda mengendalikan data tabular:
* **[Pandas](https://pandas.pydata.org/)** membolehkan anda memanipulasi yang dikenali sebagai **Dataframes**, yang serupa dengan jadual berhubung. Anda boleh mempunyai lajur bernama, dan melakukan operasi berbeza ke atas baris, lajur dan dataframe secara umum.
* **[Numpy](https://numpy.org/)** adalah perpustakaan untuk bekerja dengan **tensor**, iaitu **array** berbilang dimensi. Array mempunyai nilai jenis asas yang sama, dan ia lebih mudah daripada dataframe, tetapi menawarkan lebih banyak operasi matematik, dan menghasilkan overhead yang lebih rendah.
Terdapat juga beberapa perpustakaan lain yang anda perlu tahu:
* **[Matplotlib](https://matplotlib.org/)** adalah perpustakaan yang digunakan untuk visualisasi data dan melukis graf
* **[SciPy](https://www.scipy.org/)** adalah perpustakaan dengan beberapa fungsi saintifik tambahan. Kami telah menemui perpustakaan ini semasa bercakap tentang kebarangkalian dan statistik
* **[SciPy](https://www.scipy.org/)** adalah perpustakaan dengan beberapa fungsi saintifik tambahan. Kami sudah pernah bertemu perpustakaan ini ketika membincangkan kebarangkalian dan statistik
Berikut adalah sekeping kod yang biasanya anda gunakan untuk mengimport perpustakaan tersebut pada permulaan program Python anda:
Berikut adalah sebahagian kod yang biasanya anda gunakan untuk mengimport perpustakaan tersebut pada awal program Python anda:
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy import ... # you need to specify exact sub-packages that you need
from scipy import ... # anda perlu menyatakan sub-pakej yang tepat yang anda perlukan
```
Pandas berpusat pada beberapa konsep asas.
Pandas tertumpu pada beberapa konsep asas.
### Siri
### Siri
**Siri** adalah urutan nilai, serupa dengan senarai atau array numpy. Perbezaan utama ialah siri juga mempunyai **indeks**, dan apabila kita beroperasi pada siri (contohnya, menambahnya), indeks diambil kira. Indeks boleh semudah nombor baris integer (ia adalah indeks yang digunakan secara lalai apabila mencipta siri daripada senarai atau array), atau ia boleh mempunyai struktur kompleks, seperti selang tarikh.
**Siri** adalah deretan nilai, serupa dengan senarai atau array numpy. Perbezaan utama ialah siri juga mempunyai **indeks**, dan apabila kita melakukan operasi ke atas siri (contohnya, menambahnya), indeks diambil kira. Indeks boleh sesederhana nombor baris integer (ia adalah indeks yang digunakan secara lalai ketika membuat siri dari senarai atau array), atau boleh mempunyai struktur kompleks, seperti julat tarikh.
> **Nota**: Terdapat beberapa kod pengenalan Pandas dalam buku nota yang disertakan [`notebook.ipynb`](notebook.ipynb). Kami hanya menggariskan beberapa contoh di sini, dan anda dialu-alukan untuk melihat buku nota penuh.
> **Nota**: Terdapat beberapa kod pengenalan Pandas dalam buku nota yang disertakan [`notebook.ipynb`](notebook.ipynb). Kami hanya menggariskan beberapa contoh di sini, dan anda tentunya dialu-alukan untuk melihat buku nota penuh.
Pertimbangkan contoh: kita ingin menganalisis jualan kedai ais krim kita. Mari kita hasilkan siri nombor jualan (bilangan item yang dijual setiap hari) untuk tempoh masa tertentu:
Pertimbangkan contoh: kami mahu menganalisis jualan kedai aiskrim kami. Mari kita jana siri nombor jualan (bilangan item yang dijual setiap hari) untuk suatu tempoh masa:
```python
start_date = "Jan 1, 2020"
@ -68,20 +68,20 @@ items_sold.plot()
```

Sekarang katakan setiap minggu kita menganjurkan pesta untuk rakan-rakan, dan kita mengambil tambahan 10 pek ais krim untuk pesta. Kita boleh mencipta siri lain, diindeks mengikut minggu, untuk menunjukkan itu:
Sekarang anggap bahawa setiap minggu kami mengadakan pesta untuk rakan-rakan, dan kami mengambil tambahan 10 pek aiskrim untuk pesta tersebut. Kita boleh buat seri lain, yang diindekskan mengikut minggu, untuk menunjukkan itu:

> **Nota** bahawa kita tidak menggunakan sintaks mudah `total_items+additional_items`. Jika kita melakukannya, kita akan menerima banyak nilai `NaN` (*Not a Number*) dalam siri hasil. Ini kerana terdapat nilai yang hilang untuk beberapa titik indeks dalam siri `additional_items`, dan menambah `NaN` kepada apa-apa menghasilkan `NaN`. Oleh itu, kita perlu menentukan parameter `fill_value` semasa penambahan.
> **Nota** bahawa kami tidak menggunakan sintaks mudah `total_items+additional_items`. Jika kami melakukannya, kami akan mendapat banyak nilai `NaN` (*Bukan Nombor*) dalam siri hasil. Ini kerana terdapat nilai hilang untuk beberapa titik indeks dalam siri `additional_items`, dan menambahkan `NaN` kepada apa sahaja menghasilkan `NaN`. Oleh itu kita perlu menentukan parameter `fill_value` semasa penambahan.
Dengan siri masa, kita juga boleh **menyampel semula** siri dengan selang masa yang berbeza. Sebagai contoh, katakan kita ingin mengira purata jumlah jualan bulanan. Kita boleh menggunakan kod berikut:
Dengan siri masa, kita juga boleh **resample** siri itu dengan selang masa yang berbeza. Contohnya, andaikan kita mahu mengira purata volum jualan bulanan. Kita boleh menggunakan kod berikut:
```python
monthly = total_items.resample("1M").mean()
ax = monthly.plot(kind='bar')
@ -90,17 +90,17 @@ ax = monthly.plot(kind='bar')
### DataFrame
DataFrame pada dasarnya adalah koleksi siri dengan indeks yang sama. Kita boleh menggabungkan beberapa siri bersama-sama ke dalam DataFrame:
DataFrame pada asasnya adalah koleksi siri dengan indeks yang sama. Kita boleh menggabungkan beberapa siri menjadi DataFrame:
```python
a = pd.Series(range(1,10))
b = pd.Series(["I","like","to","play","games","and","will","not","change"],index=range(0,9))
df = pd.DataFrame([a,b])
```
Ini akan mencipta jadual mendatar seperti ini:
Ini akan menghasilkan jadual mendatar seperti ini:
Di sini `.T` bermaksud operasi menukar DataFrame, iaitu menukar baris dan lajur, dan operasi `rename` membolehkan kita menamakan semula lajur untuk sepadan dengan contoh sebelumnya.
Di sini `.T` bermaksud operasi transpose DataFrame, iaitu menukar baris dan lajur, dan operasi `rename` membolehkan kita menamakan semula lajur untuk memadankan contoh sebelumnya.
Berikut adalah beberapa operasi paling penting yang boleh kita lakukan pada DataFrame:
Berikut adalah beberapa operasi paling penting yang boleh kita lakukan pada DataFrames:
**Pemilihan lajur**. Kita boleh memilih lajur individu dengan menulis `df['A']` - operasi ini mengembalikan Siri. Kita juga boleh memilih subset lajur ke dalam DataFrame lain dengan menulis `df[['B','A']]` - ini mengembalikan DataFrame lain.
**Pemilihan lajur**. Kita boleh memilih lajur individu dengan menulis `df['A']` - operasi ini mengembalikan Siri. Kita juga boleh memilih subset lajur ke DataFrame lain dengan menulis `df[['B','A']]` - ini mengembalikan DataFrame lain.
**Penapisan** hanya baris tertentu mengikut kriteria. Sebagai contoh, untuk meninggalkan hanya baris dengan lajur `A` lebih besar daripada 5, kita boleh menulis `df[df['A']>5]`.
**Penapisan** hanya baris tertentu melalui kriteria. Contohnya, untuk meninggalkan hanya baris dengan lajur `A` lebih besar dari 5, kita boleh menulis `df[df['A']>5]`.
> **Nota**: Cara penapisan berfungsi adalah seperti berikut. Ungkapan `df['A']<5` mengembalikan siri boolean, yang menunjukkan sama ada ungkapan adalah `True` atau `False` untuk setiap elemen siri asal `df['A']`. Apabila siri boolean digunakan sebagai indeks, ia mengembalikan subset baris dalam DataFrame. Oleh itu, tidak mungkin menggunakan ungkapan boolean Python sewenang-wenangnya, contohnya, menulis `df[df['A']>5 and df['A']<7]` adalah salah. Sebaliknya, anda harus menggunakan operasi khas `&` pada siri boolean, menulis `df[(df['A']>5) & (df['A']<7)]` (*kurungan adalah penting di sini*).
> **Nota**: Cara penapisan berfungsi adalah seperti berikut. Ekspresi `df['A']<5` mengembalikan siri boolean, yang menunjukkan sama ada ekspresi adalah `True` atau `False` untuk setiap elemen siri asal `df['A']`. Apabila siri boolean digunakan sebagai indeks, ia mengembalikan subset baris dalam DataFrame. Oleh itu, tidak boleh menggunakan ekspresi boolean Python sewenang-wenangnya, contohnya, menulis `df[df['A']>5 and df['A']<7]` adalah salah. Sebaliknya, anda harus menggunakan operasi khas `&` pada siri boolean, menulis `df[(df['A']>5) & (df['A']<7)]` (*kurungan penting di sini*).
**Mencipta lajur boleh kira baru**. Kita boleh dengan mudah mencipta lajur boleh kira baru untuk DataFrame kita dengan menggunakan ungkapan intuitif seperti ini:
**Mencipta lajur baru yang boleh dikira**. Kita boleh dengan mudah mencipta lajur baru yang boleh dikira bagi DataFrame kita dengan menggunakan ekspresi intuitif seperti ini:
```python
df['DivA'] = df['A']-df['A'].mean()
```
Contoh ini mengira perbezaan A daripada nilai puratanya. Apa yang sebenarnya berlaku di sini ialah kita mengira siri, dan kemudian menetapkan siri ini kepada sebelah kiri, mencipta lajur lain. Oleh itu, kita tidak boleh menggunakan sebarang operasi yang tidak serasi dengan siri, contohnya, kod di bawah adalah salah:
Contoh ini mengira divergence A dari nilai puratanya. Apa yang sebenarnya berlaku ialah kita mengira siri, dan kemudian menetapkan siri ini ke sebelah kiri, mewujudkan lajur lain. Oleh itu, kita tidak boleh menggunakan operasi yang tidak serasi dengan siri, contohnya, kod di bawah adalah salah:
```python
# Wrong code -> df['ADescr'] = "Low" if df['A'] <5else"Hi"
df['LenB'] = len(df['B']) # <-Wrong result
# Kod salah -> df['ADescr'] = "Low" jika df['A'] <5jikatidak"Hi"
df['LenB'] = len(df['B']) # <-Keputusan salah
```
Contoh terakhir, walaupun secara sintaks betul, memberikan kita hasil yang salah, kerana ia menetapkan panjang siri `B` kepada semua nilai dalam lajur, dan bukan panjang elemen individu seperti yang kita inginkan.
Contoh terakhir, walaupun secara sintaksis betul, memberikan hasil salah, kerana ia menetapkan panjang siri `B` ke semua nilai dalam lajur, dan bukan panjang elemen individu seperti yang dimaksudkan.
Jika kita perlu mengira ungkapan kompleks seperti ini, kita boleh menggunakan fungsi `apply`. Contoh terakhir boleh ditulis seperti berikut:
Jika kita perlu mengira ekspresi yang kompleks seperti ini, kita boleh menggunakan fungsi `apply`. Contoh terakhir boleh ditulis seperti berikut:
```python
df['LenB'] = df['B'].apply(lambda x : len(x))
# or
# atau
df['LenB'] = df['B'].apply(len)
```
Selepas operasi di atas, kita akan berakhir dengan DataFrame berikut:
Selepas operasi di atas, kita akan mendapat DataFrame berikut:
| | A | B | DivA | LenB |
| --- | --- | ------ | ---- | ---- |
| 0 | 1 | I | -4.0 | 1 |
| 1 | 2 | like | -3.0 | 4 |
| 2 | 3 | to | -2.0 | 2 |
| 3 | 4 | use | -1.0 | 3 |
| 0 | 1 | Saya | -4.0 | 1 |
| 1 | 2 | suka | -3.0 | 4 |
| 2 | 3 | untuk | -2.0 | 2 |
| 3 | 4 | guna | -1.0 | 3 |
| 4 | 5 | Python | 0.0 | 6 |
| 5 | 6 | and | 1.0 | 3 |
| 5 | 6 | dan | 1.0 | 3 |
| 6 | 7 | Pandas | 2.0 | 6 |
| 7 | 8 | very | 3.0 | 4 |
| 8 | 9 | much | 4.0 | 4 |
| 7 | 8 | sangat | 3.0 | 4 |
| 8 | 9 | banyak | 4.0 | 4 |
**Memilih baris berdasarkan nombor** boleh dilakukan menggunakan konstruk `iloc`. Sebagai contoh, untuk memilih 5 baris pertama daripada DataFrame:
**Memilih baris berdasarkan nombor** boleh dilakukan menggunakan konstruk `iloc`. Contohnya, untuk memilih 5 baris pertama dari DataFrame:
```python
df.iloc[:5]
```
**Pengelompokan** sering digunakan untuk mendapatkan hasil yang serupa dengan *jadual pangsi* dalam Excel. Katakan kita ingin mengira nilai purata lajur `A` untuk setiap nombor tertentu `LenB`. Kemudian kita boleh mengelompokkan DataFrame kita mengikut`LenB`, dan memanggil `mean`:
**Pengelompokan** sering digunakan untuk mendapatkan hasil yang serupa dengan *pivot tables* dalam Excel. Andaikan kita mahu mengira nilai purata lajur `A` untuk setiap bilangan tertentu `LenB`. Kemudian kita boleh mengelompokkan DataFrame kita berdasarkan`LenB`, dan memanggil `mean`:
```python
df.groupby(by='LenB')[['A','DivA']].mean()
```
@ -192,25 +192,28 @@ Ini memberikan kita jadual berikut:
| 6 | 2 | 6.000000 |
### Mendapatkan Data
Kita telah melihat betapa mudahnya membina Series dan DataFrames daripada objek Python. Namun, data biasanya datang dalam bentuk fail teks atau jadual Excel. Nasib baik, Pandas menawarkan cara mudah untuk memuatkan data dari cakera. Sebagai contoh, membaca fail CSV semudah ini:
Kita telah melihat betapa mudahnya untuk membina Siri dan DataFrames daripada objek Python. Walau bagaimanapun, data biasanya datang dalam bentuk fail teks, atau jadual Excel. Mujurlah, Pandas menawarkan cara mudah untuk memuatkan data dari cakera. Sebagai contoh, membaca fail CSV adalah semudah ini:
```python
df = pd.read_csv('file.csv')
```
Kita akan melihat lebih banyak contoh memuatkan data, termasuk mengambilnya dari laman web luaran, dalam bahagian "Cabaran".
```
Kita akan melihat lebih banyak contoh pemuatan data, termasuk pengambilan daripada laman web luaran, dalam bahagian "Cabaran"
### Mencetak dan Memplot
### Mencetak dan Melukis
Seorang Saintis Data sering perlu meneroka data, jadi adalah penting untuk dapat memvisualisasikannya. Apabila DataFrame besar, banyak kali kita hanya ingin memastikan kita melakukan semuanya dengan betul dengan mencetak beberapa baris pertama. Ini boleh dilakukan dengan memanggil `df.head()`. Jika anda menjalankannya dari Jupyter Notebook, ia akan mencetak DataFrame dalam bentuk jadual yang kemas.
Seorang Saintis Data selalunya perlu meneroka data, jadi adalah penting untuk dapat memvisualisasikannya. Apabila DataFrame besar, sering kali kita hanya mahu memastikan segala-galanya dilakukan dengan betul dengan mencetak beberapa baris pertama. Ini boleh dilakukan dengan memanggil `df.head()`. Jika anda menjalankannya dari Jupyter Notebook, ia akan mencetak DataFrame dalam bentuk jadual yang kemas.
Kita juga telah melihat penggunaan fungsi `plot` untuk memvisualisasikan beberapa kolum. Walaupun `plot` sangat berguna untuk banyak tugas, dan menyokong pelbagai jenis graf melalui parameter `kind=`, anda sentiasa boleh menggunakan pustaka `matplotlib` secara langsung untuk memplot sesuatu yang lebih kompleks. Kita akan membincangkan visualisasi data secara terperinci dalam pelajaran kursus yang berasingan.
Kita juga telah melihat penggunaan fungsi `plot` untuk memvisualisasikan beberapa lajur. Walaupun `plot` sangat berguna untuk banyak tugas, dan menyokong banyak jenis graf yang berbeza melalui parameter `kind=`, anda sentiasa boleh menggunakan perpustakaan `matplotlib` mentah untuk melukis sesuatu yang lebih kompleks. Kita akan membincangkan visualisasi data dengan lebih terperinci dalam pelajaran kursus yang berasingan.
Gambaran keseluruhan ini merangkumi konsep paling penting dalam Pandas, namun, pustaka ini sangat kaya, dan tiada had kepada apa yang boleh anda lakukan dengannya! Mari kita gunakan pengetahuan ini untuk menyelesaikan masalah tertentu.
Gambaran keseluruhan ini merangkumi konsep paling penting Pandas, tetapi, perpustakaan ini sangat kaya, dan tiada had untuk apa yang anda boleh lakukan dengannya! Mari kita gunakan pengetahuan ini untuk menyelesaikan masalah tertentu.
## 🚀 Cabaran 1: Menganalisis Penyebaran COVID
Masalah pertama yang akan kita fokuskan ialah pemodelan penyebaran wabak COVID-19. Untuk melakukannya, kita akan menggunakan data tentang bilangan individu yang dijangkiti di pelbagai negara, yang disediakan oleh [Center for Systems Science and Engineering](https://systems.jhu.edu/) (CSSE) di [Johns Hopkins University](https://jhu.edu/). Dataset ini tersedia di [Repositori GitHub ini](https://github.com/CSSEGISandData/COVID-19).
Masalah pertama yang akan kita fokuskan adalah pemodelan penyebaran wabak COVID-19. Untuk melakukan itu, kita akan menggunakan data mengenai bilangan individu yang dijangkiti di negara-negara berbeza, disediakan oleh [Pusat Sains dan Kejuruteraan Sistem](https://systems.jhu.edu/) (CSSE) di [Universiti Johns Hopkins](https://jhu.edu/). Set data tersedia di [Repositori GitHub ini](https://github.com/CSSEGISandData/COVID-19).
Oleh kerana kita ingin menunjukkan cara menangani data, kami mengajak anda untuk membuka [`notebook-covidspread.ipynb`](notebook-covidspread.ipynb) dan membacanya dari atas ke bawah. Anda juga boleh melaksanakan sel-sel, dan melakukan beberapa cabaran yang telah kami tinggalkan untuk anda di penghujungnya.
Oleh kerana kita mahu demonstrasi cara mengendalikan data, kami menjemput anda untuk membuka [`notebook-covidspread.ipynb`](notebook-covidspread.ipynb) dan membacanya dari atas ke bawah. Anda juga boleh menjalankan sel, dan melakukan beberapa cabaran yang kami tinggalkan untuk anda di akhir.
@ -218,21 +221,21 @@ Oleh kerana kita ingin menunjukkan cara menangani data, kami mengajak anda untuk
## Bekerja dengan Data Tidak Berstruktur
Walaupun data sering datang dalam bentuk jadual, dalam beberapa kes kita perlu menangani data yang kurang berstruktur, contohnya, teks atau imej. Dalam kes ini, untuk menerapkan teknik pemprosesan data yang telah kita lihat di atas, kita perlu **mengekstrak** data berstruktur. Berikut adalah beberapa contoh:
Walaupun data sangat kerap datang dalam bentuk jadual, dalam beberapa kes kita perlu menangani data kurang terstruktur, contohnya, teks atau imej. Dalam kes ini, untuk menggunakan teknik pemprosesan data yang telah kita lihat di atas, kita perlu **mengeluarkan** data berstruktur. Berikut adalah beberapa contoh:
* Mengekstrak kata kunci daripada teks, dan melihat seberapa kerap kata kunci tersebut muncul
* Mengekstrak kata kunci daripada teks, dan melihat berapa kerap kata kunci tersebut muncul
* Menggunakan rangkaian neural untuk mengekstrak maklumat tentang objek dalam gambar
* Mendapatkan maklumat tentang emosi orang dalam suapan kamera video
* Mendapatkan maklumat tentang emosi orang dalam rakaman kamera video
## 🚀 Cabaran 2: Menganalisis Kertas COVID
Dalam cabaran ini, kita akan meneruskan topik pandemik COVID, dan fokus pada pemprosesan kertas saintifik mengenai subjek ini. Terdapat [Dataset CORD-19](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge) dengan lebih daripada 7000 (pada masa penulisan) kertas mengenai COVID, tersedia dengan metadata dan abstrak (dan untuk kira-kira separuh daripadanya juga disediakan teks penuh).
Dalam cabaran ini, kita akan meneruskan topik pandemik COVID, dan fokus pada pemprosesan kertas saintifik mengenai subjek tersebut. Terdapat [Set Data CORD-19](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge) dengan lebih daripada 7000 (ketika penulisan) kertas mengenai COVID, tersedia dengan metadata dan abstrak (dan untuk kira-kira separuh daripadanya juga disediakan teks penuh).
Contoh penuh menganalisis dataset ini menggunakan perkhidmatan kognitif [Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum) diterangkan [dalam blog post ini](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/). Kita akan membincangkan versi analisis yang dipermudahkan.
Contoh penuh menganalisis set data ini menggunakan perkhidmatan kognitif [Analitis Teks untuk Kesihatan](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum) diterangkan [dalam pos blog ini](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/). Kita akan membincangkan versi ringkas analisis ini.
> **NOTE**: Kami tidak menyediakan salinan dataset sebagai sebahagian daripada repositori ini. Anda mungkin perlu memuat turun fail [`metadata.csv`](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) daripada [dataset ini di Kaggle](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge). Pendaftaran dengan Kaggle mungkin diperlukan. Anda juga boleh memuat turun dataset tanpa pendaftaran [di sini](https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html), tetapi ia akan termasuk semua teks penuh selain daripada fail metadata.
> **CATATAN**: Kami tidak menyediakan salinan set data ini sebagai sebahagian daripada repositori ini. Anda mungkin perlu memuat turun terlebih dahulu fail [`metadata.csv`](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) dari [set data ini di Kaggle](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge). Pendaftaran dengan Kaggle mungkin diperlukan. Anda juga boleh memuat turun set data tanpa pendaftaran [di sini](https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html), tetapi ia akan termasuk semua teks penuh selain fail metadata.
Buka [`notebook-papers.ipynb`](notebook-papers.ipynb) dan bacalah dari atas ke bawah. Anda juga boleh melaksanakan sel-sel, dan melakukan beberapa cabaran yang telah kami tinggalkan untuk anda di penghujungnya.
Buka [`notebook-papers.ipynb`](notebook-papers.ipynb) dan bacalah dari atas ke bawah. Anda juga boleh menjalankan sel, dan melakukan beberapa cabaran yang kami tinggalkan untuk anda di akhir.

@ -240,34 +243,34 @@ Buka [`notebook-papers.ipynb`](notebook-papers.ipynb) dan bacalah dari atas ke b
Baru-baru ini, model AI yang sangat berkuasa telah dibangunkan yang membolehkan kita memahami imej. Terdapat banyak tugas yang boleh diselesaikan menggunakan rangkaian neural yang telah dilatih, atau perkhidmatan awan. Beberapa contoh termasuk:
* **Pengelasan Imej**, yang boleh membantu anda mengkategorikan imej ke dalam salah satu kelas yang telah ditetapkan. Anda boleh melatih pengelasan imej anda sendiri dengan mudah menggunakan perkhidmatan seperti [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum)
* **Pengesanan Objek** untuk mengesan objek yang berbeza dalam imej. Perkhidmatan seperti [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) boleh mengesan sejumlah objek biasa, dan anda boleh melatih model [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) untuk mengesan beberapa objek tertentu yang menarik.
* **Klasifikasi Imej**, yang boleh membantu anda mengkategorikan imej ke dalam salah satu kelas yang telah ditetapkan. Anda boleh melatih pengelasan imej anda sendiri dengan mudah menggunakan perkhidmatan seperti [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum)
* **Pengesanan Objek** untuk mengesan objek berbeza dalam imej. Perkhidmatan seperti [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) boleh mengesan beberapa objek biasa, dan anda boleh melatih model [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) untuk mengesan beberapa objek khusus yang diminati.
* **Pengesanan Wajah**, termasuk pengesanan Umur, Jantina dan Emosi. Ini boleh dilakukan melalui [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum).
Semua perkhidmatan awan ini boleh dipanggil menggunakan [Python SDKs](https://docs.microsoft.com/samples/azure-samples/cognitive-services-python-sdk-samples/cognitive-services-python-sdk-samples/?WT.mc_id=academic-77958-bethanycheum), dan dengan itu boleh dengan mudah dimasukkan ke dalam aliran kerja penerokaan data anda.
Semua perkhidmatan awan ini boleh dipanggil menggunakan [Python SDKs](https://docs.microsoft.com/samples/azure-samples/cognitive-services-python-sdk-samples/cognitive-services-python-sdk-samples/?WT.mc_id=academic-77958-bethanycheum), dan oleh itu boleh dengan mudah dimasukkan ke dalam aliran kerja penerokaan data anda.
Berikut adalah beberapa contoh penerokaan data daripada sumber data imej:
* Dalam blog post [How to Learn Data Science without Coding](https://soshnikov.com/azure/how-to-learn-data-science-without-coding/) kita meneroka foto Instagram, cuba memahami apa yang membuatkan orang memberikan lebih banyak suka kepada foto. Kita mula-mula mengekstrak sebanyak mungkin maklumat daripada gambar menggunakan [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum), dan kemudian menggunakan [Azure Machine Learning AutoML](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml/?WT.mc_id=academic-77958-bethanycheum) untuk membina model yang boleh ditafsirkan.
* Dalam [Facial Studies Workshop](https://github.com/CloudAdvocacy/FaceStudies) kita menggunakan [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) untuk mengekstrak emosi orang dalam gambar dari acara, untuk cuba memahami apa yang membuatkan orang gembira.
Berikut adalah beberapa contoh penerokaan data dari sumber data Imej:
* Dalam pos blog [How to Learn Data Science without Coding](https://soshnikov.com/azure/how-to-learn-data-science-without-coding/) kita meneroka foto Instagram, cuba memahami apa yang membuatkan orang memberi lebih banyak suka kepada satu foto. Kita mula-mula mengekstrak sebanyak mungkin maklumat dari gambar menggunakan [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum), dan kemudian menggunakan [Azure Machine Learning AutoML](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml/?WT.mc_id=academic-77958-bethanycheum) untuk membina model yang boleh diterangkan.
* Dalam [Facial Studies Workshop](https://github.com/CloudAdvocacy/FaceStudies) kita menggunakan [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) untuk mengekstrak emosi pada orang dalam gambar daripada acara, dengan tujuan untuk cuba memahami apa yang membuatkan orang gembira.
## Kesimpulan
Sama ada anda sudah mempunyai data berstruktur atau tidak berstruktur, menggunakan Python anda boleh melakukan semua langkah berkaitan pemprosesan dan pemahaman data. Ia mungkin cara paling fleksibel untuk pemprosesan data, dan itulah sebabnya majoriti saintis data menggunakan Python sebagai alat utama mereka. Mempelajari Python secara mendalam mungkin idea yang baik jika anda serius tentang perjalanan sains data anda!
Sama ada anda sudah mempunyai data berstruktur atau tidak berstruktur, menggunakan Python anda boleh melakukan semua langkah yang berkaitan dengan pemprosesan dan pemahaman data. Ia mungkin cara paling fleksibel untuk pemprosesan data, dan itulah sebab mengapa majoriti saintis data menggunakan Python sebagai alat utama mereka. Mempelajari Python dengan mendalam adalah idea yang baik jika anda serius dengan perjalanan sains data anda!
## [Kuiz selepas kuliah](https://ff-quizzes.netlify.app/en/ds/quiz/13)
* [Learn Python in a Fun Way with Turtle Graphics and Fractals](https://github.com/shwars/pycourse)
* [Take your First Steps with Python](https://docs.microsoft.com/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) Laluan Pembelajaran di [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum)
* [Belajar Python dengan cara yang menyeronokkan menggunakan Grafik Turtle dan Fraktal](https://github.com/shwars/pycourse)
* [Ambil Langkah Pertama Anda dengan Python](https://docs.microsoft.com/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) Laluan Pembelajaran di [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum)
## Tugasan
@ -279,5 +282,7 @@ Pelajaran ini telah ditulis dengan ♥️ oleh [Dmitry Soshnikov](http://soshnik
---
**Penafian**:
Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk memastikan ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat penting, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Penafian**:
Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk ketepatan, sila ambil maklum bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang sahih. Untuk maklumat penting, terjemahan oleh manusia profesional adalah disyorkan. Kami tidak bertanggungjawab terhadap sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.
Bagama't ang mga database ay nagbibigay ng napaka-epektibong paraan upang mag-imbak ng data at mag-query gamit ang mga query language, ang pinaka-flexible na paraan ng pagproseso ng data ay ang pagsusulat ng sarili mong programa upang manipulahin ang data. Sa maraming pagkakataon, mas epektibo ang paggamit ng database query. Gayunpaman, sa ilang mga kaso kung saan mas kumplikadong pagproseso ng data ang kinakailangan, hindi ito madaling magawa gamit ang SQL.
Habang ang mga database ay nag-aalok ng napakaepektibong mga paraan upang mag-imbak ng data at mag-query gamit ang mga query na wika, ang pinaka-mabisang paraan ng pagproseso ng data ay ang pagsusulat ng sarili mong programa upang manipulahin ang data. Sa maraming kaso, ang paggawa ng database query ay magiging mas epektibong paraan. Gayunpaman, sa ilang mga kaso kung kailan kailangan ang mas kumplikadong pagproseso ng data, hindi ito madaling magawa gamit ang SQL.
Ang pagproseso ng data ay maaaring i-program sa anumang programming language, ngunit may ilang mga wika na mas mataas ang antas pagdating sa pakikipagtrabaho sa data. Karaniwang pinipili ng mga data scientist ang isa sa mga sumusunod na wika:
Ang pagproseso ng data ay maaaring gawin gamit ang anumang programming language, ngunit may mga partikular na wika na mas mataas ang antas pagdating sa pagproseso ng data. Karaniwang ginagamit ng mga data scientist ang isa sa mga sumusunod na wika:
* **[Python](https://www.python.org/)**, isang general-purpose programming language, na madalas itinuturing na isa sa mga pinakamahusay na opsyon para sa mga nagsisimula dahil sa pagiging simple nito. Maraming karagdagang mga library ang Python na makakatulong sa iyo na lutasin ang maraming praktikal na problema, tulad ng pagkuha ng iyong data mula sa ZIP archive, o pag-convert ng larawan sa grayscale. Bilang karagdagan sa data science, madalas ding ginagamit ang Python para sa web development.
* **[R](https://www.r-project.org/)** ay isang tradisyunal na toolbox na binuo para sa statistical na pagproseso ng data. Naglalaman din ito ng malaking repository ng mga library (CRAN), kaya ito ay magandang pagpipilian para sa pagproseso ng data. Gayunpaman, ang R ay hindi isang general-purpose programming language, at bihirang gamitin sa labas ng domain ng data science.
* **[Julia](https://julialang.org/)** ay isa pang wika na espesyal na binuo para sa data science. Layunin nitong magbigay ng mas magandang performance kaysa sa Python, kaya mahusay itong gamit para sa siyentipikong eksperimento.
* **[Python](https://www.python.org/)**, isang general-purpose programming language, na madalas itinuturing na isa sa mga pinakamahusay na opsyon para sa mga baguhan dahil sa pagiging simple nito. Maraming karagdagang library ang Python na makakatulong sa iyo na lutasin ang maraming praktikal na problema, tulad ng pagkuha ng data mula sa ZIP archive, o pag-convert ng larawan sa grayscale. Bukod sa data science, madalas ding ginagamit ang Python para sa web development.
* **[R](https://www.r-project.org/)** ay isang tradisyunal na toolbox na binuo para sa statistical data processing. Mayroon din itong malaking repository ng mga library (CRAN), na ginagawang magandang opsyon para sa pagproseso ng data. Gayunpaman, ang R ay hindi isang general-purpose programming language, at bihirang ginagamit sa labas ng domain ng data science.
* **[Julia](https://julialang.org/)** ay isa pang wika na partikular na binuo para sa data science. Ito ay nilalayon upang magbigay ng mas mahusay na performance kaysa sa Python, na ginagawang mahusay na tool para sa scientific experimentation.
Sa araling ito, tututok tayo sa paggamit ng Python para sa simpleng pagproseso ng data. Ipagpapalagay natin ang basic na pamilyaridad sa wika. Kung nais mo ng mas malalim na paglalakbay sa Python, maaari kang tumingin sa isa sa mga sumusunod na resources:
Sa araling ito, magpo-focus tayo sa paggamit ng Python para sa simpleng pagproseso ng data. I-aassume natin na may basic na kaalaman ka na sa wika. Kung nais mong mas malalim na pag-aaral sa Python, maaari kang sumangguni sa isa sa mga sumusunod na resources:
* [Matutunan ang Python sa Masayang Paraan gamit ang Turtle Graphics at Fractals](https://github.com/shwars/pycourse) - Mabilisang GitHub-based intro sa Python Programming
* [Simulan ang Iyong Mga Unang Hakbang sa Python](https://docs.microsoft.com/en-us/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) Learning Path sa [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum)
* [Matutong Python sa Masayang Paraan gamit ang Turtle Graphics at Fractals](https://github.com/shwars/pycourse) - GitHub-based na mabilisang intro course sa Python Programming
* [Simulan ang Iyong Unang Hakbang sa Python](https://docs.microsoft.com/en-us/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) Learning Path sa [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum)
Ang data ay maaaring dumating sa maraming anyo. Sa araling ito, pag-uusapan natin ang tatlong anyo ng data - **tabular data**, **teksto** at **mga larawan**.
Ang data ay maaaring dumating sa iba't ibang anyo. Sa araling ito, tatalakayin natin ang tatlong anyo ng data - **tabular data**, **text**, at **images**.
Tututok tayo sa ilang mga halimbawa ng pagproseso ng data, sa halip na magbigay ng buong pangkalahatang ideya ng lahat ng kaugnay na mga library. Ito ay magpapahintulot sa iyo na makuha ang pangunahing ideya ng kung ano ang posible, at bibigyan ka ng pang-unawa kung saan hahanapin ang mga solusyon sa iyong mga problema kapag kailangan mo ito.
> **Pinaka-kapaki-pakinabang na payo**. Kapag kailangan mong magsagawa ng tiyak na operasyon sa data na hindi mo alam kung paano gawin, subukang maghanap nito sa internet. Karaniwan, maraming kapaki-pakinabang na sample na code sa Python para sa maraming tipikal na gawain sa [Stackoverflow](https://stackoverflow.com/).
Magpo-focus tayo sa ilang mga halimbawa ng pagproseso ng data, sa halip na magbigay ng kumpletong overview ng lahat ng kaugnay na library. Ito ay magbibigay-daan sa iyo upang makuha ang pangunahing ideya ng kung ano ang posible, at mag-iwan sa iyo ng kaalaman kung saan hahanapin ang mga solusyon sa iyong mga problema kapag kailangan mo ito.
> **Pinakamahalagang payo**. Kapag kailangan mong magsagawa ng partikular na operasyon sa data na hindi mo alam kung paano gawin, subukang maghanap nito sa internet. [Stackoverflow](https://stackoverflow.com/) ay karaniwang naglalaman ng maraming kapaki-pakinabang na code sample sa Python para sa maraming karaniwang gawain.
Nakilala mo na ang tabular data noong pinag-usapan natin ang relational databases. Kapag marami kang data, at ito ay nakapaloob sa maraming magkakaugnay na mga talahanayan, tiyak na may katuturan ang paggamit ng SQL para sa pagproseso nito. Gayunpaman, maraming mga pagkakataon kung saan mayroon tayong isang talahanayan ng data, at kailangan nating makakuha ng **pag-unawa** o **insights** tungkol sa data na ito, tulad ng distribution, correlation sa pagitan ng mga halaga, atbp. Sa data science, maraming mga pagkakataon kung saan kailangan nating magsagawa ng ilang mga transformation ng orihinal na data, na sinusundan ng visualization. Ang parehong mga hakbang na ito ay madaling magawa gamit ang Python.
Nakilala mo na ang tabular data nang pinag-usapan natin ang relational databases. Kapag marami kang data, at ito ay nasa maraming magkakaugnay na mga talahanayan, tiyak na makatuwiran na gamitin ang SQL para gawin ang trabaho. Gayunpaman, maraming kaso kung kailan mayroon tayong isang talahanayan ng data, at kailangan nating magkaroon ng ilang **pag-unawa** o **insights** tungkol sa data na ito, tulad ng distribusyon, ugnayan ng mga halaga, at iba pa. Sa data science, maraming pagkakataon na kailangan nating magsagawa ng mga transformasyon sa orihinal na data, kasunod ang visualization. Parehong madaling gawin ang mga hakbang na ito gamit ang Python.
Mayroong dalawang pinaka-kapaki-pakinabang na library sa Python na makakatulong sa iyo sa pagproseso ng tabular data:
* **[Pandas](https://pandas.pydata.org/)** ay nagbibigay-daan sa iyo upang manipulahin ang tinatawag na **Dataframes**, na katulad ng relational tables. Maaari kang magkaroon ng mga pinangalanang column, at magsagawa ng iba't ibang operasyon sa row, column, at dataframes sa pangkalahatan.
* **[Numpy](https://numpy.org/)** ay isang library para sa pagproseso ng **tensors**, ibig sabihin, multi-dimensional **arrays**. Ang array ay may mga halaga ng parehong underlying type, at mas simple kaysa sa dataframe, ngunit nag-aalok ito ng mas maraming mathematical operations, at mas kaunting overhead.
May dalawang pinaka-kapaki-pakinabang na mga library sa Python na makakatulong sa iyo sa paghawak ng tabular data:
* **[Pandas](https://pandas.pydata.org/)** ay nagbibigay-daan sa iyo upang manipulahin ang tinatawag na **Dataframes**, na katulad ng mga relational tables. Maaari kang magkaroon ng mga pangalan ng kolum, at magsagawa ng iba't ibang operasyon sa mga row, column, at mga dataframes sa pangkalahatan.
* **[Numpy](https://numpy.org/)** ay isang library para sa pakikipagtrabaho sa **tensors**, ibig sabihin ay multi-dimensional **arrays**. Ang array ay may mga halaga ng parehong uri, at ito ay mas simple kaysa sa dataframe, ngunit nag-aalok ng mas maraming matematikal na operasyon, at nagdudulot ng mas mababang overhead.
Mayroon ding ilang iba pang mga library na dapat mong malaman:
* **[Matplotlib](https://matplotlib.org/)** ay isang library na ginagamit para sa data visualization at pag-plot ng mga graph
* **[SciPy](https://www.scipy.org/)** ay isang library na may ilang karagdagang scientific functions. Nakilala na natin ang library na ito noong pinag-usapan ang probability at statistics.
* **[Matplotlib](https://matplotlib.org/)** ay isang library na ginagamit para sa data visualization at pagguhit ng mga grap
* **[SciPy](https://www.scipy.org/)** ay isang library na may ilang karagdagang siyentipikong mga function. Nakilala na natin ang library na ito nang pag-usapan ang probabilidad at estadistika
Narito ang isang piraso ng code na karaniwang ginagamit upang i-import ang mga library na ito sa simula ng iyong Python program:
Narito ang isang piraso ng code na karaniwang ginagamit upang i-import ang mga librariyang ito sa simula ng iyong Python na programa:
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy import ... # you need to specify exact sub-packages that you need
from scipy import ... # kailangan mong tukuyin ang eksaktong sub-pakete na kailangan mo
```
Ang Pandas ay nakasentro sa ilang mga pangunahing konsepto.
Ang Pandas ay nakasentro sa ilang pangunahing konsepto.
### Series
### Series
Ang **Series** ay isang sequence ng mga halaga, katulad ng list o numpy array. Ang pangunahing pagkakaiba ay ang series ay mayroon ding **index**, at kapag nag-ooperate tayo sa series (hal., ina-add ang mga ito), ang index ay isinasaalang-alang. Ang index ay maaaring kasing simple ng integer row number (ito ang default na index kapag gumagawa ng series mula sa list o array), o maaari itong magkaroon ng mas kumplikadong istruktura, tulad ng date interval.
**Series** ay isang sunud-sunod ng mga halaga, katulad ng listahan o numpy array. Ang pangunahing pagkakaiba ay ang series ay may isang **index**, at kapag nagpapatakbo tayo sa series (halimbawa, nagdaragdag), isinaalang-alang ang index. Ang index ay maaaring kasing-simpleng bilang ng hilera (ito ang default na index kapag gumawa ng series mula sa listahan o array), o maaari itong magkaroon ng mas kumplikadong istraktura, tulad ng interval ng petsa.
> **Note**: May introductory Pandas code sa kasamang notebook [`notebook.ipynb`](notebook.ipynb). I-outline lang natin ang ilang mga halimbawa dito, at malugod kang inaanyayahan na tingnan ang buong notebook.
> **Tandaan**: May ilang panimulang Pandas na code sa kasamaang notebook [`notebook.ipynb`](notebook.ipynb). Dito ay inilalahad lamang ang ilan sa mga halimbawa, at malugod kang inaanyayahang tingnan ang buong notebook.
Isaalang-alang ang isang halimbawa: nais nating suriin ang benta ng ating ice-cream spot. Gumawa tayo ng series ng mga numero ng benta (bilang ng mga item na nabenta bawat araw) para sa ilang panahon:
Isaalang-alang ang isang halimbawa: nais nating suriin ang mga benta ng ating ice-cream na lugar. Gumawa tayo ng series ng mga bilang ng benta (bilang ng mga item na naibenta bawat araw) para sa ilang panahon:
```python
start_date = "Jan 1, 2020"
@ -67,20 +68,20 @@ items_sold.plot()
```

Ngayon ipagpalagay na bawat linggo ay nag-oorganisa tayo ng party para sa mga kaibigan, at kumukuha ng karagdagang 10 pack ng ice-cream para sa party. Maaari tayong gumawa ng isa pang series, na naka-index sa linggo, upang ipakita iyon:
Ngayon sabihin na bawat linggo ay nag-oorganisa tayo ng party para sa mga kaibigan, at kumukuha tayo ng dagdag na 10 pakete ng ice-cream para sa party. Maaari tayong gumawa ng isa pang series, na naka-index sa linggo, upang ipakita ito:

> **Note** na hindi natin ginagamit ang simpleng syntax `total_items+additional_items`. Kung ginawa natin, makakakuha tayo ng maraming `NaN` (*Not a Number*) na halaga sa resulting series. Ito ay dahil may mga nawawalang halaga para sa ilang mga index point sa `additional_items` series, at ang pagdaragdag ng `NaN` sa anumang bagay ay nagreresulta sa `NaN`. Kaya kailangan nating tukuyin ang `fill_value`parameter sa panahon ng addition.
> **Tandaan** na hindi natin ginagamit ang simpleng syntax na `total_items+additional_items`. Kung ginawa natin iyon, makakatanggap tayo ng maraming `NaN` (*Not a Number*) na mga halaga sa resulta ng series. Ito ay dahil may mga nawawalang halaga para sa ilang index na puntos sa `additional_items` series, at kapag nagdagdag ng `NaN` sa anumang bagay ay nagreresulta ito sa `NaN`. Kaya kailangan nating tukuyin ang `fill_value`na parameter sa panahon ng pagdagdag.
Sa time series, maaari rin tayong mag-**resample** ng series gamit ang iba't ibang time intervals. Halimbawa, ipagpalagay na nais nating kalkulahin ang mean sales volume buwan-buwan. Maaari nating gamitin ang sumusunod na code:
Sa mga time series, maaari rin nating **i-resample** ang series gamit ang iba't ibang mga time interval. Halimbawa, sabihin na nais nating kalkulahin ang mean na dami ng benta buwan-buwan. Maaari nating gamitin ang sumusunod na code:
```python
monthly = total_items.resample("1M").mean()
ax = monthly.plot(kind='bar')
@ -89,23 +90,23 @@ ax = monthly.plot(kind='bar')
### DataFrame
Ang DataFrame ay mahalagang koleksyon ng mga series na may parehong index. Maaari nating pagsamahin ang ilang mga series sa isang DataFrame:
Ang DataFrame ay isang koleksyon ng mga series na may parehong index. Maaari nating pagsamahin ang ilang mga series sa isang DataFrame:
```python
a = pd.Series(range(1,10))
b = pd.Series(["I","like","to","play","games","and","will","not","change"],index=range(0,9))
df = pd.DataFrame([a,b])
```
Ito ay lilikha ng isang horizontal na talahanayan tulad nito:
Ito ay gagawa ng isang horizontal na talahanayan na ganito:
| 1 | I | like | to | use | Python | and | Pandas | very | much |
Maaari rin nating gamitin ang Series bilang mga column, at tukuyin ang mga pangalan ng column gamit ang dictionary:
Maaari rin nating gamitin ang Series bilang mga kolum, at tukuyin ang mga pangalan ng kolum gamit ang diksyunaryo:
```python
df = pd.DataFrame({ 'A' : a, 'B' : b })
```
Ito ay magbibigay sa atin ng isang talahanayan tulad nito:
Ito ay magbibigay sa atin ng isang talahanayan na ganito:
| | A | B |
| --- | --- | ------ |
@ -119,39 +120,39 @@ Ito ay magbibigay sa atin ng isang talahanayan tulad nito:
| 7 | 8 | very |
| 8 | 9 | much |
**Note** na maaari rin nating makuha ang layout ng talahanayan na ito sa pamamagitan ng pag-transpose ng naunang talahanayan, hal., sa pamamagitan ng pagsulat
**Tandaan** na maaari rin nating makuha ang layout ng talahanayang ito sa pamamagitan ng pag-transpose ng naunang talahanayan, halimbawa sa pagsusulat ng
Dito, ang `.T` ay nangangahulugan ng operasyon ng pag-transpose ng DataFrame, ibig sabihin, pagbabago ng mga row at column, at ang `rename` operation ay nagbibigay-daan sa atin na palitan ang pangalan ng mga column upang tumugma sa naunang halimbawa.
Dito ang `.T` ay nangangahulugang operasyon ng pag-transpose ng DataFrame, ibig sabihin ang pagpapalit ng mga hilera at kolum, at ang `rename` na operasyon ay nagpapahintulot sa atin na palitan ang pangalan ng mga kolum upang tumugma sa naunang halimbawa.
Narito ang ilang mga pinakamahalagang operasyon na maaari nating gawin sa DataFrames:
Narito ang ilang mga pinaka-mahalagang operasyon na maaari nating gawin sa DataFrames:
**Pagpili ng column**. Maaari nating piliin ang mga indibidwal na column sa pamamagitan ng pagsulat ng `df['A']` - ang operasyong ito ay nagbabalik ng Series. Maaari rin nating piliin ang subset ng mga column sa isa pang DataFrame sa pamamagitan ng pagsulat ng `df[['B','A']]` - ito ay nagbabalik ng isa pang DataFrame.
**Pagpili ng kolum**. Maaari tayong pumili ng indibidwal na kolum sa pamamagitan ng pagsusulat ng `df['A']` - ang operasyong ito ay nagbabalik ng isang Series. Maaari rin tayong pumili ng subset ng mga kolum papunta sa isa pang DataFrame sa pamamagitan ng pagsusulat ng `df[['B','A']]` - ito ay nagbabalik ng isa pang DataFrame.
**Pag-filter** ng mga partikular na row batay sa criteria. Halimbawa, upang iwanan lamang ang mga row na may column `A` na mas malaki sa 5, maaari nating isulat ang `df[df['A']>5]`.
**Pag-filter** lamang ng ilang mga hilera ayon sa mga pamantayan. Halimbawa, upang mapanatili lamang ang mga hilera kung saan ang kolum `A` ay mas malaki sa 5, maaari nating isulat ang `df[df['A']>5]`.
> **Note**: Ang paraan ng pag-filter ay ganito. Ang expression na `df['A']<5` ay nagbabalik ng boolean series, na nagpapahiwatig kung ang expression ay `True` o `False` para sa bawat elemento ng orihinal na series `df['A']`. Kapag ang boolean series ay ginamit bilang index, nagbabalik ito ng subset ng mga row sa DataFrame. Kaya't hindi posible na gumamit ng arbitrary Python boolean expression, halimbawa, ang pagsulat ng `df[df['A']>5 and df['A']<7]` ay mali. Sa halip, dapat mong gamitin ang espesyal na `&` operation sa boolean series, sa pamamagitan ng pagsulat ng `df[(df['A']>5) & (df['A']<7)]` (*mahalaga ang mga bracket dito*).
> **Tandaan**: Ang paraan ng pag-filter ay ang sumusunod. Ang expression na `df['A']<5` ay nagbabalik ng boolean series, na nagsasaad kung ang expression ay `True` o `False` para sa bawat elemento ng orihinal na series `df['A']`. Kapag ginamit ang boolean series bilang index, ibinabalik nito ang subset ng mga hilera sa DataFrame. Kaya hindi pwedeng gumamit ng arbitrary Python boolean expression, halimbawa ang pagsusulat ng `df[df['A']>5 and df['A']<7]` ay mali. Sa halip, dapat gamitin ang espesyal na `&` na operasyon sa boolean series, isusulat ang `df[(df['A']>5) & (df['A']<7)]` (*mahalaga ang mga panaklong dito*).
**Paglikha ng bagong computable columns**. Madali tayong makakalikha ng bagong computable columns para sa ating DataFrame sa pamamagitan ng paggamit ng intuitive na expression tulad nito:
**Paglikha ng mga bagong computable na kolum**. Madali tayong makalikha ng mga bagong computable na kolum para sa ating DataFrame gamit ang intuitive na expression tulad nito:
```python
df['DivA'] = df['A']-df['A'].mean()
```
Ang halimbawang ito ay nagkakalkula ng divergence ng A mula sa mean value nito. Ang aktwal na nangyayari dito ay nagko-compute tayo ng series, at pagkatapos ay ina-assign ang series na ito sa left-hand-side, na lumilikha ng isa pang column. Kaya't hindi natin magagamit ang anumang mga operasyon na hindi compatible sa series, halimbawa, ang code sa ibaba ay mali:
Ang halimbawang ito ay nagkalkula ng divergence ng A mula sa mean value nito. Ang tunay na nangyayari dito ay kinukwenta natin ang isang series, at pagkatapos ay iniaassign ang series na ito sa kaliwang bahagi, na lumilikha ng isa pang kolum. Kaya hindi natin pwedeng gamitin ang mga operasyon na hindi compatible sa series, halimbawa, ang code sa ibaba ay mali:
```python
# Wrong code -> df['ADescr'] = "Low" if df['A'] <5else"Hi"
df['LenB'] = len(df['B']) # <-Wrong result
# Mali na code -> df['ADescr'] = "Mababa" kung ang df['A'] <5kunghindinamanay"Mataas"
df['LenB'] = len(df['B']) # <-Maling resulta
```
Ang huling halimbawa, bagama't syntactically correct, ay nagbibigay sa atin ng maling resulta, dahil ina-assign nito ang haba ng series `B` sa lahat ng mga halaga sa column, at hindi ang haba ng mga indibidwal na elemento tulad ng ating nilalayon.
Ang huling halimbawa, bagama't tama ang sintaks, ay nagbibigay ng maling resulta, dahil inaassign nito ang haba ng series `B` sa lahat ng halaga sa kolum, at hindi ang haba ng bawat indibidwal na elemento gaya ng ating nilayon.
Kung kailangan nating mag-compute ng mga kumplikadong expression tulad nito, maaari nating gamitin ang `apply` function. Ang huling halimbawa ay maaaring isulat tulad nito:
Kung kailangan nating magcompute ng mga kumplikadong expression tulad nito, maaari nating gamitin ang function na `apply`. Ang huling halimbawa ay maaaring isulat tulad ng sumusunod:
```python
df['LenB'] = df['B'].apply(lambda x : len(x))
# or
# o
df['LenB'] = df['B'].apply(len)
```
Pagkatapos ng mga operasyon sa itaas, magkakaroon tayo ng sumusunod na DataFrame:
Pagkatapos ng mga operasyon sa itaas, makakakuha tayo ng sumusunod na DataFrame:
| | A | B | DivA | LenB |
| --- | --- | ------ | ---- | ---- |
@ -165,16 +166,16 @@ Pagkatapos ng mga operasyon sa itaas, magkakaroon tayo ng sumusunod na DataFrame
| 7 | 8 | very | 3.0 | 4 |
| 8 | 9 | much | 4.0 | 4 |
**Pagpili ng mga row batay sa numero** ay maaaring gawin gamit ang `iloc` construct. Halimbawa, upang piliin ang unang 5 row mula sa DataFrame:
**Pagpili ng mga hilera base sa mga numero** ay maaaring gawin gamit ang `iloc` na konstruksyon. Halimbawa, upang pumili ng unang 5 hilera mula sa DataFrame:
```python
df.iloc[:5]
```
**Pag-group** ay madalas na ginagamit upang makakuha ng resulta na katulad ng *pivot tables* sa Excel. Halimbawa, ipagpalagay na nais nating kalkulahin ang mean value ng column `A` para sa bawat ibinigay na numero ng `LenB`. Pagkatapos ay maaari nating i-group ang ating DataFrame sa pamamagitan ng `LenB`, at tawagin ang `mean`:
**Pagrupo** ay madalas gamitin upang makakuha ng resulta na katulad ng *pivot tables* sa Excel. Sabihin na nais nating kalkulahin ang mean na halaga ng kolum `A` para sa bawat bilang ng `LenB`. Maaari nating i-group ang ating DataFrame sa pamamagitan ng `LenB`, at tawagin ang `mean`:
```python
df.groupby(by='LenB')[['A','DivA']].mean()
```
Kung kailangan nating kalkulahin ang mean at ang bilang ng mga elemento sa grupo, maaari tayong gumamit ng mas kumplikadong `aggregate` function:
Kung kailangan nating kalkulahin ang mean at bilang ng mga elemento sa grupo, maaari nating gamitin ang mas kumplikadong `aggregate` function:
@ -191,92 +192,97 @@ Ito ay nagbibigay sa atin ng sumusunod na talahanayan:
| 6 | 2 | 6.000000 |
### Pagkuha ng Data
Nakikita natin kung gaano kadali ang paggawa ng Series at DataFrames mula sa mga Python object. Gayunpaman, kadalasan ang data ay nasa anyo ng text file o Excel table. Sa kabutihang-palad, nag-aalok ang Pandas ng simpleng paraan para mag-load ng data mula sa disk. Halimbawa, ang pagbabasa ng CSV file ay kasing simple ng ganito:
Nakita na natin kung gaano kadaling bumuo ng Series at DataFrames mula sa mga Python na bagay. Gayunpaman, karaniwan ang data ay nanggagaling sa anyo ng text file, o Excel table. Sa kabutihang-palad, nag-aalok ang Pandas ng isang simpleng paraan upang mag-load ng data mula sa disk. Halimbawa, ang pagbabasa ng CSV file ay kasing dali nito:
```python
df = pd.read_csv('file.csv')
```
Makikita natin ang mas maraming halimbawa ng pag-load ng data, kabilang ang pagkuha nito mula sa mga external na website, sa seksyong "Challenge".
Makikita natin ang higit pang mga halimbawa ng pag-load ng data, kabilang ang pagkuha nito mula sa mga panlabas na website, sa seksyong "Challenge"
### Pagpi-print at Pag-plot
### Pag-print at Pag-plot
Ang isang Data Scientist ay madalas kailangang mag-explore ng data, kaya mahalaga ang kakayahang ma-visualize ito. Kapag malaki ang DataFrame, madalas gusto nating tiyakin na tama ang ginagawa natin sa pamamagitan ng pagpi-print ng ilang unang rows. Magagawa ito sa pamamagitan ng pagtawag sa `df.head()`. Kung ginagamit mo ito mula sa Jupyter Notebook, ipi-print nito ang DataFrame sa isang maayos na tabular na anyo.
Madalas kailangan ng isang Data Scientist na siyasatin ang data, kaya mahalagang makita ito nang biswal. Kapag malaki ang DataFrame, kadalasan gusto lang nating siguraduhin na tama ang ginagawa natin sa pamamagitan ng pag-print ng unang ilang mga hilera. Magagawa ito sa pamamagitan ng pagtawag sa `df.head()`. Kung isinasagawa mo ito mula sa Jupyter Notebook, ipo-print nito ang DataFrame sa magandang tabular na anyo.
Nakita rin natin ang paggamit ng `plot` function para i-visualize ang ilang columns. Habang ang `plot` ay napaka-kapaki-pakinabang para sa maraming gawain, at sumusuporta sa iba't ibang uri ng graph sa pamamagitan ng `kind=` parameter, palagi kang maaaring gumamit ng raw na `matplotlib` library para mag-plot ng mas kumplikadong bagay. Tatalakayin natin ang data visualization nang mas detalyado sa hiwalay na mga aralin sa kurso.
Nakita rin natin ang paggamit ng `plot` function upang i-visualize ang ilang column. Habang napaka-kapaki-pakinabang ng `plot` para sa maraming gawain, at sinusuportahan ang maraming iba't ibang uri ng graph sa pamamagitan ng parameter na `kind=`, palagi kang maaaring gumamit ng raw `matplotlib` library upang mag-plot ng mas kumplikadong bagay. Tatalakayin natin nang detalyado ang data visualization sa hiwalay na mga aralin.
Ang overview na ito ay sumasaklaw sa mga pinakamahalagang konsepto ng Pandas, ngunit napakayaman ng library na ito, at walang limitasyon sa kung ano ang magagawa mo dito! Ngayon, gamitin natin ang kaalamang ito para lutasin ang partikular na problema.
Sinasaklaw ng overview na ito ang pinakamahalagang mga konsepto ng Pandas, gayunpaman, napakayaman ng library, at walang hangganan sa maaari mong gawin dito! Ngayon ay ilalapat natin ang kaalaman na ito para lutasin ang isang espesipikong problema.
## 🚀 Hamon 1: Pagsusuri sa Pagkalat ng COVID
## 🚀 Hamon 1: Pagsusuri ng Pagkalat ng COVID
Ang unang problemang tututukan natin ay ang pagmomodelo ng pagkalat ng epidemya ng COVID-19. Upang magawa ito, gagamitin natin ang data sa bilang ng mga nahawaang indibidwal sa iba't ibang bansa, na ibinigay ng [Center for Systems Science and Engineering](https://systems.jhu.edu/) (CSSE) sa [Johns Hopkins University](https://jhu.edu/). Ang dataset ay makukuha sa [GitHub Repository na ito](https://github.com/CSSEGISandData/COVID-19).
Ang unang problema na tututukan natin ay ang pagmomodelo ng pagkalat ng epidemya ng COVID-19. Upang magawa iyon, gagamitin natin ang data ng bilang ng mga nahawaang indibidwal sa iba't ibang bansa, na ibinibigay ng [Center for Systems Science and Engineering](https://systems.jhu.edu/) (CSSE) sa [Johns Hopkins University](https://jhu.edu/). Available ang dataset sa [GitHub Repository na ito](https://github.com/CSSEGISandData/COVID-19).
Dahil nais naming ipakita kung paano magtrabaho sa data, inaanyayahan ka naming buksan ang [`notebook-covidspread.ipynb`](notebook-covidspread.ipynb) at basahin ito mula sa simula hanggang sa dulo. Maaari mo ring i-execute ang mga cells, at gawin ang ilang mga hamon na iniwan namin para sa iyo sa dulo.
Dahil nais nating ipakita kung paano harapin ang data, iniimbitahan ka naming buksan ang [`notebook-covidspread.ipynb`](notebook-covidspread.ipynb) at basahin ito mula sa simula hanggang dulo. Maaari mo ring patakbuhin ang mga cell, at gawan ang ilang mga hamon na iniwan namin para sa iyo sa dulo.
> Kung hindi mo alam kung paano magpatakbo ng code sa Jupyter Notebook, tingnan ang [artikulong ito](https://soshnikov.com/education/how-to-execute-notebooks-from-github/).
> Kung hindi mo alam kung paano patakbuhin ang code sa Jupyter Notebook, tingnan ang [artikulong ito](https://soshnikov.com/education/how-to-execute-notebooks-from-github/).
## Pagtatrabaho sa Hindi Nakabalangkas na Data
## Paggawa sa Hindi Istrakturadong Data
Bagamat madalas na nasa tabular na anyo ang data, sa ilang mga kaso kailangan nating magtrabaho sa mas hindi nakabalangkas na data, halimbawa, text o mga larawan. Sa ganitong kaso, upang magamit ang mga teknik sa pagproseso ng data na nakita natin sa itaas, kailangan nating **kunin** ang nakabalangkas na data. Narito ang ilang mga halimbawa:
Bagaman madalas na dumarating ang data sa tabular na anyo, sa ilang mga kaso kailangan nating harapin ang hindi gaanong istrakturadong data, halimbawa, teksto o mga larawan. Sa kasong ito, upang magamit ang mga teknik sa pagproseso ng data na nakita natin sa itaas, kailangan nating **kunin** ang istrakturadong data. Narito ang ilang mga halimbawa:
* Pagkuha ng mga keyword mula sa text, at pagtingin kung gaano kadalas lumalabas ang mga keyword na iyon
* Paggamit ng neural networks para kunin ang impormasyon tungkol sa mga bagay sa larawan
* Pagkuha ng impormasyon tungkol sa emosyon ng mga tao sa video camera feed
* Pagkuha ng mga keyword mula sa teksto, at pagtingin kung gaano kadalas lumalabas ang mga keyword na iyon
* Paggamit ng mga neural network upang kunin ang impormasyon tungkol sa mga bagay sa larawan
* Pagkuha ng impormasyon tungkol sa mga emosyon ng mga tao sa video camera feed
## 🚀 Hamon 2: Pagsusuri sa mga Papel Tungkol sa COVID
## 🚀 Hamon 2: Pagsusuri ng mga Papel tungkol sa COVID
Sa hamon na ito, ipagpapatuloy natin ang paksa ng pandemya ng COVID, at magtutuon sa pagproseso ng mga siyentipikong papel tungkol dito. Mayroong [CORD-19 Dataset](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge) na may higit sa 7000 (sa oras ng pagsulat) na mga papel tungkol sa COVID, na makukuha kasama ang metadata at mga abstract (at para sa halos kalahati nito, mayroong buong teksto na ibinigay).
Sa hamong ito, ipagpapatuloy natin ang paksa ng pandemya ng COVID, at tututok sa pagproseso ng mga makabagong papel tungkol sa paksang ito. Mayroong [CORD-19 Dataset](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge) na naglalaman ng higit sa 7000 (sa oras ng pagsulat) na mga papel tungkol sa COVID, kasama ang metadata at mga abstrakto (at para sa halos kalahati nito ay mayroong buong teksto rin).
Ang isang buong halimbawa ng pagsusuri sa dataset na ito gamit ang [Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum) cognitive service ay inilarawan [sa blog post na ito](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/). Tatalakayin natin ang pinasimpleng bersyon ng pagsusuri na ito.
Isang kompletong halimbawa ng pagsusuri sa dataset na ito gamit ang [Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum) cognitive service ay inilalarawan [sa blog post na ito](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/). Tatalakayin natin ang pinasimpleng bersyon ng pagsusuring ito.
> **NOTE**: Hindi namin ibinibigay ang kopya ng dataset bilang bahagi ng repository na ito. Maaaring kailanganin mo munang i-download ang [`metadata.csv`](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) file mula sa [dataset na ito sa Kaggle](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge). Maaaring kailanganin ang pagpaparehistro sa Kaggle. Maaari mo ring i-download ang dataset nang walang pagpaparehistro [mula dito](https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html), ngunit isasama nito ang lahat ng buong teksto bilang karagdagan sa metadata file.
> **NOTE**: Hindi namin ibinibigay ang kopya ng dataset bilang bahagi ng repositoryong ito. Kailangan mo munang i-download ang [`metadata.csv`](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) na file mula [sa dataset na ito sa Kaggle](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge). Maaaring kinakailangan ang pagpaparehistro sa Kaggle. Maaari mo ring i-download ang dataset nang hindi nagrerehistro [mula dito](https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html), ngunit kasama dito ang lahat ng buong teksto maliban sa metadata file.
Buksan ang [`notebook-papers.ipynb`](notebook-papers.ipynb) at basahin ito mula sa simula hanggang sa dulo. Maaari mo ring i-execute ang mga cells, at gawin ang ilang mga hamon na iniwan namin para sa iyo sa dulo.
Buksan ang [`notebook-papers.ipynb`](notebook-papers.ipynb) at basahin ito mula sa taas hanggang baba. Maaari mo ring patakbuhin ang mga cell, at gawan ang ilang mga hamon na iniwan namin para sa iyo sa dulo.

## Pagproseso ng Data ng Larawan
Kamakailan, napakalalakas na AI models ang nadevelop na nagbibigay-daan sa atin upang maunawaan ang mga larawan. Maraming mga gawain ang maaaring malutas gamit ang pre-trained neural networks, o cloud services. Ilan sa mga halimbawa ay:
Kamakailan, nakabuo ng napakalakas na mga modelo ng AI na nagpapahintulot sa atin na maintindihan ang mga larawan. Maraming mga gawain ang maaaring malutas gamit ang mga pre-trained neural networks, o cloud services. Ilan sa mga halimbawa ay:
* **Image Classification**, na makakatulong sa iyong i-categorize ang larawan sa isa sa mga pre-defined na klase. Madali kang makakapagsanay ng sarili mong image classifiers gamit ang mga serbisyo tulad ng [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum)
* **Object Detection** upang matukoy ang iba't ibang bagay sa larawan. Ang mga serbisyo tulad ng [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) ay maaaring matukoy ang maraming karaniwang bagay, at maaari kang magsanay ng [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) model upang matukoy ang ilang partikular na bagay na interes.
* **Face Detection**, kabilang ang Age, Gender, at Emotion detection. Magagawa ito sa pamamagitan ng [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum).
* **Image Classification**, na makakatulong sa iyong i-categorize ang larawan sa isa sa mga pre-defined na klase. Madali kang makakapagsanay ng sarili mong mga image classifier gamit ang mga serbisyo tulad ng [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum)
* **Object Detection** upang matukoy ang iba't ibang mga bagay sa larawan. Ang mga serbisyo gaya ng [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) ay makakapagtukoy ng maraming karaniwang bagay, at maaari kang magsanay ng modelong [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) upang matukoy ang ilang partikular na mga bagay na interes.
* **Face Detection**, kabilang ang pagtukoy ng Edad, Kasarian at Emosyon. Magagawa ito gamit ang [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum).
Ang lahat ng mga cloud services na ito ay maaaring tawagin gamit ang [Python SDKs](https://docs.microsoft.com/samples/azure-samples/cognitive-services-python-sdk-samples/cognitive-services-python-sdk-samples/?WT.mc_id=academic-77958-bethanycheum), at kaya madaling maisama sa iyong workflow sa pag-explore ng data.
Lahat ng mga serbisyong ito sa cloud ay maaaring tawagin gamit ang [Python SDKs](https://docs.microsoft.com/samples/azure-samples/cognitive-services-python-sdk-samples/cognitive-services-python-sdk-samples/?WT.mc_id=academic-77958-bethanycheum), kaya madali silang maisasama sa iyong workflow ng pag-explore ng data.
Narito ang ilang mga halimbawa ng pag-explore ng data mula sa mga pinagmulan ng data ng larawan:
* Sa blog post na [How to Learn Data Science without Coding](https://soshnikov.com/azure/how-to-learn-data-science-without-coding/) ini-explore namin ang mga larawan sa Instagram, sinusubukang maunawaan kung ano ang nagpapataas ng likes sa isang larawan. Una naming kinukuha ang mas maraming impormasyon mula sa mga larawan gamit ang [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum), at pagkatapos ay ginagamit ang [Azure Machine Learning AutoML](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml/?WT.mc_id=academic-77958-bethanycheum) upang bumuo ng interpretable model.
* Sa [Facial Studies Workshop](https://github.com/CloudAdvocacy/FaceStudies) ginagamit namin ang [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) upang kunin ang emosyon ng mga tao sa mga larawan mula sa mga event, upang subukang maunawaan kung ano ang nagpapasaya sa mga tao.
Narito ang ilang mga halimbawa ng pag-explore ng data mula sa mga pinagkukunan ng Image data:
* Sa blog post na [How to Learn Data Science without Coding](https://soshnikov.com/azure/how-to-learn-data-science-without-coding/) sinusuri namin ang mga larawan sa Instagram, sinusubukang maunawaan kung ano ang nagtutulak sa mga tao na magbigay ng higit pang likes sa isang larawan. Una naming kinukuha ang maraming impormasyon mula sa mga larawan gamit ang [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum), pagkatapos ay ginagamit ang [Azure Machine Learning AutoML](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml/?WT.mc_id=academic-77958-bethanycheum) upang bumuo ng interpretable na modelo.
* Sa [Facial Studies Workshop](https://github.com/CloudAdvocacy/FaceStudies) ginagamit namin ang [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) upang kunin ang mga emosyon ng tao sa mga larawan mula sa mga kaganapan, upang subukang maunawaan kung ano ang nagpapasaya sa mga tao.
## Konklusyon
Kung mayroon ka nang nakabalangkas o hindi nakabalangkas na data, gamit ang Python maaari mong gawin ang lahat ng hakbang na may kaugnayan sa pagproseso at pag-unawa sa data. Ito marahil ang pinaka-flexible na paraan ng pagproseso ng data, at ito ang dahilan kung bakit ang karamihan sa mga data scientist ay gumagamit ng Python bilang kanilang pangunahing tool. Ang pag-aaral ng Python nang mas malalim ay marahil isang magandang ideya kung seryoso ka sa iyong data science journey!
Kahit mayroon ka nang istrakturadong o hindi istrakturadong data, gamit ang Python maaari mong gawin ang lahat ng hakbang na may kaugnayan sa pagproseso at pag-unawa sa data. Marahil ito ang pinaka flexible na paraan ng pagproseso ng data, at ito ang dahilan kung bakit karamihan sa mga data scientist ay gumagamit ng Python bilang pangunahing kasangkapan nila. Ang pag-aaral ng Python nang malalim ay marahil isang magandang ideya kung seryoso ka sa iyong paglalakbay sa data science!
* [Wes McKinney. Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython](https://www.amazon.com/gp/product/1491957662)
**Mga Online Resources**
* Opisyal na [10 minutes to Pandas](https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html) tutorial
* [Dokumentasyon sa Pandas Visualization](https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html)
**Mga Online na Mapagkukunan**
* Opisyal na [10 minutes to Pandas](https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html) na tutorial
* [Dokumentasyon tungkol sa Pandas Visualization](https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html)
**Pag-aaral ng Python**
* [Learn Python in a Fun Way with Turtle Graphics and Fractals](https://github.com/shwars/pycourse)
* [Take your First Steps with Python](https://docs.microsoft.com/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) Learning Path sa [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum)
* [Matuto ng Python sa Masayang Paraan gamit ang Turtle Graphics at Fractals](https://github.com/shwars/pycourse)
* [Umpisahan ang Iyong Unang Hakbang sa Python](https://docs.microsoft.com/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) Learning Path sa [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum)
## Takdang-Aralin
## TakdangAralin
[Isagawa ang mas detalyadong pag-aaral ng data para sa mga hamon sa itaas](assignment.md)
[Gumawa ng mas detalyadong pag-aaral ng data para sa mga hamon sa itaas](assignment.md)
## Mga Kredito
## Mga Pinagmulan
Ang araling ito ay isinulat nang may ♥️ ni [Dmitry Soshnikov](http://soshnikov.com)
---
**Paunawa**:
Ang dokumentong ito ay isinalin gamit ang AI translation service na [Co-op Translator](https://github.com/Azure/co-op-translator). Bagama't sinisikap naming maging tumpak, pakitandaan na ang mga awtomatikong pagsasalin ay maaaring maglaman ng mga pagkakamali o hindi pagkakatugma. Ang orihinal na dokumento sa kanyang orihinal na wika ang dapat ituring na opisyal na sanggunian. Para sa mahalagang impormasyon, inirerekomenda ang propesyonal na pagsasalin ng tao. Hindi kami mananagot sa anumang hindi pagkakaunawaan o maling interpretasyon na maaaring magmula sa paggamit ng pagsasaling ito.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Pagtatanggi**:
Ang dokumentong ito ay isinalin gamit ang serbisyo ng AI translation na [Co-op Translator](https://github.com/Azure/co-op-translator). Bagama't nagsusumikap kami para sa katumpakan, pakatandaan na ang awtomatikong pagsasalin ay maaaring maglaman ng mga pagkakamali o hindi pagkakatugma. Ang orihinal na dokumento sa orihinal nitong wika ang dapat ituring na pangunahing sanggunian. Para sa mahahalagang impormasyon, inirerekomenda ang propesyonal na pagsasalin ng tao. Hindi kami mananagot sa anumang maling pagkakaintindi o maling interpretasyon na nagmula sa paggamit ng pagsasaling ito.