NumPy adalah perpustakaan dasar untuk komputasi ilmiah dengan Python, dan banyak digunakan dalam aplikasi pembelajaran mesin. Berikut beberapa fungsi umum NumPy yang sering digunakan dalam pembelajaran mesin:
1. np.array(): Fungsi ini digunakan untuk membuat array NumPy, yang merupakan struktur data dasar yang digunakan dalam pembelajaran mesin.
2. np.zeros(), np.ones(), np.random.rand(), np.random.randn(): Fungsi-fungsi ini digunakan untuk membuat array yang diisi dengan nol, satu, atau nilai acak, yang sering digunakan untuk menginisialisasi parameter model atau menghasilkan data sintetis.
3. np.linspace(), np.logspace(): Fungsi-fungsi ini digunakan untuk membuat array dengan nilai yang berjarak sama, yang dapat berguna untuk tugas-tugas seperti rekayasa fitur atau visualisasi.
4. np.reshape(), np.transpose(), np.expand_dims(): Fungsi-fungsi ini digunakan untuk memanipulasi bentuk dan dimensi array, yang sering kali diperlukan saat bekerja dengan model pembelajaran mesin.
5. np.concatenate(), np.stack(), np.vstack(), np.hstack(): Fungsi-fungsi ini digunakan untuk menggabungkan beberapa array sepanjang sumbu yang berbeda, yang dapat berguna untuk tugas-tugas seperti rekayasa fitur atau augmentasi data.
6. np.sum(), np.mean(), np.std(), np.var(): Fungsi-fungsi ini digunakan untuk menghitung statistik dasar properti array, yang dapat berguna untuk analisis data dan rekayasa fitur.
7. np.dot(), np.matmul(): Fungsi-fungsi ini digunakan untuk melakukan perkalian matriks, yang merupakan operasi mendasar dalam banyak algoritma pembelajaran mesin.
8. np.linalg.inv(), np.linalg.eig(), np.linalg.svd(): Fungsi-fungsi ini digunakan untuk melakukan operasi aljabar linier, seperti inversi matriks, dekomposisi nilai eigen, dan dekomposisi nilai singular, yang penting dalam pembelajaran mesin untuk tugas-tugas seperti pengurangan dimensi dan pengoptimalan model.
9. np.argmax(), np.argsort(): Fungsi-fungsi ini digunakan untuk menemukan indeks nilai maksimum atau nilai terurut dalam array, yang dapat berguna untuk tugas seperti klasifikasi atau pemeringkatan .
10. np.where(): Fungsi ini digunakan untuk menerapkan logika kondisional pada array, yang dapat berguna untuk tugas seperti rekayasa fitur atau prapemrosesan data.
Ini hanyalah beberapa contoh dari sekian banyak fungsi NumPy yang umum digunakan dalam pembelajaran mesin. Fungsi spesifik yang digunakan akan bergantung pada masalah tertentu dan persyaratan model pembelajaran mesin yang digunakan.
Kutipan:
[1] https://madewithml.com/courses/foundations/numpy/
[2] https://faculty.washington.edu/otoomet/machinelearning-py/numpy-and-pandas.html
[3] https://www.youtube.com/watch?v=gnKbAAVUzro
[4] https://www.naukri.com/code360/library/important-numpy-functions-for-ml
[5] https://becominghuman.ai/an-essential-guide-to-numpy-for-machine-learning-in-python-5615e1758301?gi=adb6aadca980
Apa perbedaan perkalian titik NumPy dengan perkalian matriks di perpustakaan lain
Perbedaan utama antara fungsi `np.dot()` NumPy dan perkalian matriks di perpustakaan lain adalah:
1. Dimensi:
- `np.dot()` dapat menangani array dengan dimensi berbeda, melakukan operasi berbeda berdasarkan bentuk masukan.
- Untuk array 1D, `np.dot()` menghitung hasil kali dalam.
- Untuk array 2D, `np.dot()` menghitung perkalian matriks.
- Untuk array berdimensi lebih tinggi, `np.dot()` melakukan perkalian penjumlahan pada sumbu terakhir argumen pertama dan sumbu kedua hingga terakhir argumen kedua.
2. Efisiensi:
- `np.dot()` NumPy sangat optimal dan menggunakan pustaka BLAS (Basic Linear Algebra Subprograms) yang efisien, membuatnya sangat cepat.
- Perpustakaan lain mungkin tidak memiliki tingkat optimasi yang sama, terutama untuk matriks besar atau array berdimensi tinggi.
3. Sintaks:
- Dalam Python 3.5 dan yang lebih baru, operator `@` dapat digunakan untuk perkalian matriks, yang lebih intuitif dan ringkas dibandingkan memanggil `np.dot()`.
- Pustaka lain mungkin memiliki sintaksnya sendiri untuk perkalian matriks, yang mungkin berbeda dari `np.dot()` NumPy.
4. Fleksibilitas:
- `np.dot()` lebih fleksibel dalam menangani array dengan dimensi berbeda, sedangkan perkalian matriks di pustaka lain mungkin memiliki persyaratan yang lebih ketat pada bentuk masukan.
5. Konvensi Penamaan:
- Nama `np.dot()` bisa menyesatkan, karena ia melakukan perkalian titik dan matriks bergantung pada bentuk masukan.
- Pustaka lain mungkin memiliki nama fungsi yang lebih deskriptif, seperti `matrix_multiply()` atau `matmul()`, untuk membedakan dengan jelas antara perkalian titik dan perkalian matriks.
Singkatnya, meskipun operasi matematika yang mendasarinya mungkin serupa, fungsi `np.dot()` NumPy memberikan implementasi perkalian titik dan matriks yang lebih fleksibel dan efisien dibandingkan dengan perpustakaan lain, namun konvensi penamaannya dapat membingungkan. Pengenalan operator `@` di Python 3.5+ membantu membuat perkalian matriks lebih intuitif.
Kutipan:
[1] https://stackoverflow.com/questions/34142485/difference-between-numpy-dot-and-python-3-5-matrix-multiplication
[2] https://www.w3resource.com/python-exercises/numpy/advanced-numpy-exercise-1.php
[3] https://mkang32.github.io/python/2020/08/30/numpy-matmul.html
[4] https://www.includehelp.com/python/difference-between-numpy-dot-and-inner-methods.aspx
[5] https://numpy.org/doc/stable/reference/generated/numpy.dot.html
apakah ada skenario di mana np.dot lebih disukai daripada @ atau np.matmul
Ya, ada skenario di mana `np.dot` lebih disukai daripada `@` atau `np.matmul`. Berikut beberapa kasus di mana `np.dot` mungkin lebih cocok:
1. Kompatibilitas dengan versi Python lama: `np.dot` tersedia di semua versi NumPy, termasuk versi lama. Jika Anda perlu mendukung versi Python yang lebih lama, `np.dot` adalah pilihan yang lebih aman.
2. Kasus penggunaan tertentu: `np.dot` dapat menangani operasi tertentu yang tidak dapat ditangani oleh `@` dan `np.matmul`. Misalnya, jika Anda perlu melakukan perkalian titik di sepanjang sumbu tertentu, `np.dot` dapat menanganinya dengan lebih mudah.
3. Keterbacaan dan kejelasan: Dalam beberapa kasus, penggunaan `np.dot` dapat membuat kode lebih mudah dibaca dan dipahami. Misalnya, jika Anda melakukan perkalian titik dalam ekspresi kompleks, penggunaan `np.dot` dapat membuat kode lebih ringkas dan mudah diikuti.
4. Kinerja: Dalam beberapa kasus, `np.dot` mungkin lebih cepat daripada `@` atau `np.matmul` karena caranya menangani operasi tertentu. Namun, hal ini umumnya bukan masalah besar kecuali Anda bekerja dengan kumpulan data yang sangat besar.
5. Kode lama: Jika Anda bekerja dengan kode lama yang menggunakan `np.dot`, mungkin akan lebih mudah untuk tetap menggunakan `np.dot` untuk menjaga kompatibilitas dan menghindari potensi masalah dengan peningkatan ke versi NumPy yang lebih baru .
Berikut beberapa skenario di mana `np.dot` mungkin lebih disukai daripada `@` atau `np.matmul`:
- Kompatibilitas dengan versi Python lama: Jika Anda perlu mendukung versi Python lama, `np.dot` adalah pilihan yang lebih aman.
- Kasus penggunaan tertentu: Jika Anda perlu melakukan perkalian titik di sepanjang sumbu tertentu, `np.dot` dapat menanganinya dengan lebih mudah.
- Keterbacaan dan kejelasan: Dalam beberapa kasus, penggunaan `np.dot` dapat membuat kode lebih mudah dibaca dan dipahami.
- Kinerja: Dalam beberapa kasus, `np.dot` mungkin lebih cepat daripada `@` atau `np.matmul` karena caranya menangani operasi tertentu.
- Kode lawas: Jika Anda bekerja dengan kode lawas yang menggunakan `np.dot`, mungkin akan lebih mudah untuk tetap menggunakan `np.dot` untuk menjaga kompatibilitas dan menghindari potensi masalah saat mengupgrade ke versi NumPy yang lebih baru.
Singkatnya, meskipun `@` dan `np.matmul` secara umum lebih efisien dan mudah dibaca, ada beberapa skenario di mana `np.dot` mungkin lebih cocok.
Kutipan:[1] https://stackoverflow.com/questions/63628004/whether-to-use-numpys-dot-or-matmul-function
[2] https://stackoverflow.com/questions/34142485/difference-between-numpy-dot-and-python-3-5-matrix-multiplication
[3] https://madewithml.com/courses/foundations/numpy/
[4] https://mkang32.github.io/python/2020/08/30/numpy-matmul.html
[5] https://labex.io/tutorials/python-numpy-dot-function-86429