Dalam tutorial ini, saya akan menunjukkan cara menggunakan fungsi Numpy dot (np. dot), untuk menghitung produk dot di Numpy
Saya akan menjelaskan dengan tepat apa fungsinya, bagaimana sintaks bekerja, dan saya akan menunjukkan kepada Anda contoh yang jelas tentang cara menggunakan np. dot
Daftar isi
Jika Anda memerlukan sesuatu yang spesifik, Anda dapat mengklik salah satu tautan di atas, dan itu akan membawa Anda ke bagian tutorial yang sesuai
Karena itu, jika Anda baru mengenal Numpy, atau memerlukan penyegaran cepat tentang produk dot matematika, Anda mungkin harus membaca seluruh tutorial
Pengantar Cepat Numpy Dot
Pertama-tama, mari kita mulai dengan dasar-dasarnya
Apa yang dilakukan Numpydot?
Pada level tinggi, Numpy dot menghitung perkalian titik dari dua larik Numpy
Jika Anda sedikit baru di Numpy, atau jika Anda tidak sepenuhnya memahami produk dot, itu mungkin tidak sepenuhnya masuk akal.
Jadi, mari kita segera tinjau beberapa dasar tentang Numpy dan tentang produk dot
Numpy dot beroperasi pada array Numpy
Mari kita mulai dengan Numpy
Seperti yang mungkin Anda ketahui, Numpy adalah paket tambahan untuk bahasa pemrograman Python
Kami kebanyakan menggunakan Numpy untuk manipulasi data dan komputasi ilmiah, tetapi kami menggunakan Numpy pada jenis data tertentu dalam struktur data tertentu
Numpy adalah Paket untuk Bekerja dengan Data Numerik dengan PythonSecara khusus, Numpy membuat dan mengoperasikan array Numpy
Array Numpy adalah struktur data yang menyimpan data numerik dalam struktur baris dan kolom
Jadi misalnya, array Numpy 2 dimensi terlihat seperti ini
Array numpy bisa datang dalam berbagai bentuk dan ukuran. Misalnya, kita dapat membangun array 1 dimensi, array 2 dimensi, dan array n dimensi
Selain itu, kita dapat membuat array Numpy di mana Numbers memiliki berbagai properti berbeda. Sebagai contoh, kita dapat membuat larik yang berisi angka yang terdistribusi normal, angka yang diambil dari distribusi seragam, angka yang semuanya memiliki nilai yang sama, hanya untuk beberapa nama.
Jadi Numpy memiliki beragam fungsi untuk membuat array Numpy dengan berbagai jenis properti
Numpy memiliki Fungsi untuk Melakukan Perhitungan dengan Numpy Array
Selain memiliki fungsi untuk membuat array Numpy, paket Numpy juga memiliki fungsi untuk pengoperasian dan komputasi dengan array Numpy
Jadi Numpy memiliki banyak fungsi untuk melakukan perhitungan matematis, seperti menghitung jumlah array, menghitung eksponensial nilai array, dan banyak lagi.
Selain itu, Numpy memiliki fungsi untuk melakukan operasi lanjutan, seperti operasi dari aljabar linier
np. dot menghitung produk dot di Numpy
Jadi apa fungsi Numpy dot?
Penjelasan sederhananya adalah bahwa np.dot(2,3) _2 menghitung perkalian titik
Mengutip entri di Wikipedia, produk titik adalah operasi yang mengambil dua urutan angka yang panjangnya sama dan mengembalikan satu angka
Karena itu, fungsi Numpy dot bekerja sedikit berbeda tergantung pada input yang tepat
Ada tiga kasus luas yang akan kita pertimbangkan dengan np.dot(2,3) 2
- kedua input adalah array 1D
- keduanya adalah array 2D
- satu input adalah skalar dan satu input adalah array
Mari kita lihat bagaimana Numpy dot beroperasi untuk berbagai kasus ini
Jika array input keduanya adalah array 1 dimensi, np. dot menghitung perkalian titik vektor
Misalkan kita memiliki dua larik Numpy, dan , dan setiap larik memiliki 3 nilai.
Diberikan dua larik 1 dimensi, np.dot(2,3) 2 akan menghitung perkalian titik
Produk titik dapat dihitung sebagai berikut
Perhatikan apa yang terjadi di sini. Array ini memiliki panjang yang sama, dan setiap array memiliki 3 nilai
Saat kita menghitung perkalian titik, kita mengalikan nilai pertama dengan nilai pertama . Kita mengalikan nilai kedua dengan nilai kedua . Dan kita mengalikan nilai ketiga dengan nilai ketiga . Kemudian, kami mengambil nilai yang dihasilkan, dan menjumlahkannya.
Keluarannya adalah nilai skalar tunggal … dalam contoh ini, .
Dalam istilah matematika, kita bisa menggeneralisasi contoh di atas. Jika kita memiliki dua vektor dan , dan setiap vektor memiliki elemen, maka perkalian titik is given by the equation:
(1)
Pada dasarnya, saat kita mengambil perkalian titik dari dua larik Numpy, kita menghitung jumlah perkalian berpasangan dari dua larik tersebut
Jika salah satu input adalah skalar, np. dot melakukan perkalian skalar
Kasus kedua adalah ketika satu input adalah nilai skalar , dan satu input adalah larik Numpy, yang di sini kita sebut .
Jika kita menggunakan Numpy dot pada input ini dengan kode np.dot(2,3) 5 Numpy akan melakukan perkalian skalar pada array
Jadi ketika kita menggunakan Numpy dot dengan satu skalar dan satu larik Numpy, itu mengalikan setiap nilai larik dengan skalar dan menghasilkan larik Numpy baru
Jika kedua input adalah array 2D, np. dot melakukan perkalian matriks
Kasus terakhir yang akan kita bahas adalah ketika kedua array input adalah array 2 dimensi
Dalam hal ini, dengan dua larik 2D, fungsi np.dot(2,3) 2 akan melakukan perkalian matriks
Penjelasan lengkap tentang perkalian matriks berada di luar cakupan tutorial ini, tetapi mari kita lihat contoh singkatnya
Misalkan Anda memiliki dua larik 2D, dan .
Selanjutnya, mari gandakan array tersebut menggunakan perkalian matriks
Selama perkalian matriks, kita mengalikan nilai baris dengan nilai kolom dan menjumlahkannya dengan cara berikut.
Dan inilah hasil akhir yang dihitung
Perhatikan bahwa larik keluaran, , memiliki jumlah baris yang sama dengan dan jumlah kolom yang sama dengan .
Selain itu, setiap nilai dalam larik keluaran dihitung dengan menjumlahkan hasil baris ke-i dari dan baris ke-j dari .
Secara umum, untuk menghitung larik keluaran , setiap nilai larik keluaran didefinisikan sebagai.
(2)
Jika Anda tidak terbiasa dengan aljabar linier secara umum, dan aljabar matriks secara khusus, saya menyadari bahwa persamaan ini bisa sedikit membingungkan. Bahkan mungkin sedikit mengintimidasi
Yang mengatakan, jika Anda ingin mempelajari lebih lanjut tentang operasi ini, saya sarankan Anda membaca buku Aljabar Linear dan Aplikasinya, oleh David Lay dan rekan. Ini adalah buku yang sangat mudah didekati tentang aljabar linier yang akan membantu Anda memahami beberapa operasi yang kami lakukan dengan Numpy dot
Baik. Jadi sekarang kita telah melihat apa yang dilakukan Numpy dot, mari kita lihat lebih dekat sintaksnya
Sintaks Numpy Dot
Di sini, saya akan menjelaskan sintaks dari fungsi Numpy dot
Catatan singkat
Satu hal sebelum kita melihat sintaks
Untuk menggunakan fungsi Numpy, Anda harus mengimpor Numpy terlebih dahulu. Anda dapat melakukannya dengan kode berikut
import numpy as npIni penting, karena cara Anda mengimpor Numpy akan memengaruhi sintaks
Ini adalah konvensi umum di antara ilmuwan data Python untuk mengimpor Numpy dengan alias 'np.dot(2,3) 7', dan kami akan tetap berpegang pada konvensi itu di sini
np. sintaks titik
Sintaks np.dot(2,3) 2 sangat sederhana
Dengan asumsi bahwa Anda telah mengimpor Numpy dengan alias np.dot(2,3) 7, Anda memanggil fungsi tersebut sebagai 6 0
Kemudian, di dalam tanda kurung, terdapat beberapa parameter yang memungkinkan Anda memberikan input ke fungsi tersebut
Mari kita lihat input tersebut
Parameter np. dot
Ada 2 parameter inti untuk fungsi 6 0
- 6 _2
- 6 _3
Mari kita lihat dengan cepat, satu per satu
6 _2 (wajib)Parameter 6 2 memungkinkan Anda menentukan nilai input pertama atau larik ke fungsi
Secara teknis, argumen untuk parameter ini bisa berupa nilai skalar, atau objek "mirip larik".
Karena memungkinkan objek seperti array, ini bisa menjadi array Numpy yang tepat, atau bisa berupa daftar Python, tuple, dll. Nilai skalar seperti 6 _6 atau 6 7 juga akan berfungsi
Perlu diingat bahwa Anda harus memberikan argumen untuk parameter ini
6 _3 (wajib)Parameter 6 3 memungkinkan Anda menentukan nilai input kedua atau larik ke fungsi
Mirip dengan parameter 6 _2, argumen untuk 6 3 dapat berupa nilai skalar, atau objek "mirip larik" apa pun. Argumen yang dapat diterima untuk parameter ini termasuk array Numpy, daftar Python, dan tupel. Nilai skalar seperti 6 _6 atau 6 7 juga dapat diterima
Perlu diingat bahwa Anda harus memberikan argumen untuk parameter ini
np.dot(2,[5,6]) _4 (opsional)Perhatikan bahwa 6 _0 juga memiliki parameter ________23______4. Ini agak jarang digunakan, jadi kami tidak akan membahasnya di sini. Untuk informasi selengkapnya tentang parameter ini, tinjau dokumentasi resmi
Keluaran dari np. dot
Output dari 6 _0 tergantung pada input
Ada beberapa kasus
- Jika kedua input adalah skalar, 6 _0 akan mengalikan skalar bersama-sama dan menghasilkan skalar
- Jika satu input adalah skalar dan satu adalah array, 6 0 akan mengalikan setiap nilai array dengan skalar (i. e. , perkalian skalar)
- Jika kedua input adalah array 1 dimensi, 6 0 akan menghitung produk titik dari input
- Jika kedua input adalah array 2 dimensi, maka 6 0 akan melakukan perkalian matriks
Jadi seperti yang Anda lihat, hasilnya sangat tergantung pada bagaimana Anda menggunakan fungsi tersebut
Dengan mengingat hal itu, mari kita lihat beberapa contoh sehingga Anda dapat melihat cara kerjanya, dan melihat berbagai jenis keluaran yang 6 0 menghasilkan jenis masukan tertentu
Contoh. Cara Menghitung Produk Dot di Numpy
Baik. Mari kita kerjakan beberapa contoh langkah demi langkah
Jika Anda memerlukan sesuatu yang spesifik, Anda dapat mengklik salah satu tautan berikut, dan itu akan membawa Anda ke contoh yang sesuai
Contoh
Jalankan kode ini terlebih dahulu
Sebelum Anda menjalankan salah satu contoh, Anda harus mengimpor Numpy terlebih dahulu
Anda dapat melakukannya dengan kode berikut
import numpy as npSetelah Anda selesai melakukannya, Anda harus siap untuk pergi
CONTOH 1. Kalikan dua angka
Baik. Mari kita mulai dengan contoh sederhana
Di sini, kita akan menggunakan dua angka (mis. e. , nilai skalar) sebagai input ke 6 0
np.dot(2,3)KELUAR
6 _PenjelasanIni mungkin sedikit tidak terduga, tetapi sangat sederhana
Di sini, kami memanggil 6 0 dengan dua nilai skalar, 2 dan 3
Ketika kita memanggil 6 0 dengan dua skalar, itu hanya mengalikan keduanya
Jelas array([10, 12]) 6
CONTOH 2. Kalikan Angka dan Array
Selanjutnya, mari berikan array dan skalar sebagai input
Di sini, kami akan menyediakan skalar (bilangan bulat) dan daftar Python. Alih-alih daftar Python, kami juga dapat menyediakan larik Numpy, tetapi saya menggunakan daftar Python sebagai gantinya karena membuat operasi sedikit lebih mudah dipahami di sini
Mari lihat
np.dot(2,[5,6])KELUAR
array([10, 12]) PenjelasanSekali lagi, ini sangat sederhana
Argumen pertama untuk fungsi tersebut adalah nilai skalar 2
Argumen kedua untuk fungsi tersebut adalah daftar Python array([10, 12]) 7
Saat kami menyediakan skalar sebagai satu masukan dan daftar (atau larik Numpy) sebagai masukan lainnya, 6 0 cukup mengalikan nilai larik dengan skalar
Secara matematis, kami menganggap ini sebagai perkalian skalar dari vektor atau matriks
CONTOH 3. Hitung Produk Dot dari Dua Array 1D
Selanjutnya, mari masukkan dua daftar 1 dimensi
Di sini, kami akan menggunakan dua daftar Python, tetapi kami juga dapat menggunakan array Numpy 1D. Saya menggunakan daftar Python karena membuat operasi sedikit lebih mudah dipahami secara sekilas
Mari lihat
np.dot([3,4,5],[7,8,9])KELUAR
98 _PenjelasanApa yang terjadi di sini?
Di sini, 6 _0 menghitung produk titik dari dua input
Masukan ini adalah daftar Python 1 dimensi. Dan seperti yang saya katakan sebelumnya, kita juga bisa menggunakan array Numpy 1D
Secara matematis, daftar 1D dan array Numpy 1D seperti vektor
Saat kita bekerja dengan vektor dan mengambil perkalian titik, perkalian titik dihitung dengan yang kita lihat sebelumnya
Jadi ketika Numpy dot memiliki dua daftar atau array 1D sebagai input …
… dibutuhkan produk dari elemen berpasangan, dan kemudian menjumlahkannya
Dan hasilnya adalah nilai skalar. Dalam hal ini, hasilnya adalah 98
CONTOH 4. Lakukan Perkalian Matriks pada Dua Larik 2D
Terakhir, mari kita lihat apa yang terjadi saat kita menggunakan Numpy dot pada dua larik 2 dimensi
Buat ArrayPertama, mari kita buat dua array Numpy 2 dimensi
Untuk melakukan ini, kami akan menggunakan fungsi np.dot([3,4,5],[7,8,9]) 0 untuk membuat urutan angka, lalu menggunakan metode pembentukan ulang Numpy untuk membentuk ulang angka menjadi bentuk 2D
A_array_2d = np.arange(start = 3, stop = 9).reshape((2,3)) B_array_2d = np.arange(start = 10, stop = 16).reshape((3,2))Dan mari kita cetak, supaya Anda bisa melihat isinya
print(A_array_2d)KELUAR
import numpy as np 0import numpy as np 1KELUAR
import numpy as np 2Perhatikan bahwa kedua array Numpy ini adalah 2 dimensi. Karena itu, jumlah baris di np.dot([3,4,5],[7,8,9]) 1 sama dengan jumlah kolom di np.dot([3,4,5],[7,8,9]) 2
Gunakan np. dotBaik. Sekarang mari kita gunakan fungsi Numpy dot pada dua larik ini
import numpy as np _3KELUAR
Jadi apa yang terjadi di sini?
Dalam hal ini, kami menggunakan dua array Numpy 2 dimensi sebagai input
Saat kita menggunakan array 2D sebagai input, 6 0 menghitung produk matriks dari array
Ketika melakukan ini, 6 0 menghitung nilai array keluaran sesuai dengan persamaan 2 yang kita
Jadi di balik layar, inilah yang dilakukan Numpy saat kita menjalankan kode np.dot([3,4,5],[7,8,9]) 5
Perhatikan baik-baik. Pada gambar di atas, Anda dapat melihat bahwa perhitungan mengalikan nilai baris A dengan nilai kolom B, menjumlahkannya, dan memasukkannya ke dalam larik hasil akhir, dengan nilai berikut
Operasi ini dikenal sebagai produk matriks
Jadi sekali lagi. ketika kita menggunakan Numpy dot pada dua larik 2 dimensi, 6 0 menghitung perkalian matriks
Saya mengerti bahwa ini mungkin sedikit membingungkan jika Anda tidak memiliki banyak pengalaman dengan aljabar linier. Jika itu masalahnya, saya sarankan Anda membaca tentang aljabar linier secara umum, dan perkalian matriks pada khususnya
Pertanyaan yang sering diajukan tentang Numpy Dot
Sekarang kita telah melihat beberapa contoh, mari kita lihat beberapa pertanyaan umum tentang fungsi 6 0
Pertanyaan yang sering diajukan
pertanyaan 1. Apa perbedaan antara 6 _0 dan np.dot([3,4,5],[7,8,9]) 9 ?
Numpy dot dan Numpy matmul serupa, tetapi berperilaku berbeda untuk beberapa jenis masukan
Dua perbedaan besar adalah untuk
- perkalian dengan skalar
- perkalian array Numpy dimensi tinggi
Mari kita lihat satu per satu
Perkalian dengan skalarPerbedaan pertama antara 6 _0 dan np.dot([3,4,5],[7,8,9]) 9 adalah bahwa 6 0 memungkinkan Anda mengalikan dengan nilai skalar, tetapi np.dot([3,4,5],[7,8,9]) 9 tidak
Seperti yang kita lihat di , ketika kita menggunakan 6 0 dengan satu skalar (mis. g. , bilangan bulat) dan larik/daftar, Numpy dot hanya akan mengalikan setiap nilai larik dengan nilai skalar
np.dot(2,[5,6])KELUAR
array([10, 12])Namun, jika Anda mencoba melakukan ini dengan np.dot([3,4,5],[7,8,9]) 9 Anda akan mendapatkan kesalahan
import numpy as np _7KELUAR
import numpy as np 8Perkalian array dimensi tinggiArea kedua di mana 6 0 dan np.dot([3,4,5],[7,8,9]) 9 berbeda adalah ketika mereka beroperasi pada array dimensi tinggi
Menurut dokumentasi…
Saat Anda menggunakan np.dot(2,3) 2
Jika a adalah larik N-D dan b adalah larik 1-D, ini adalah hasil penjumlahan sumbu terakhir dari a dan b
Jika a adalah larik N-D dan b adalah larik M-D (di mana M>=2), ini adalah hasil penjumlahan dari sumbu terakhir a dan sumbu kedua ke terakhir dari b
Tetapi ketika Anda menggunakan A_array_2d = np.arange(start = 3, stop = 9).reshape((2,3)) B_array_2d = np.arange(start = 10, stop = 16).reshape((3,2)) _3
Jika salah satu argumen adalah N-D, N > 2, itu diperlakukan sebagai tumpukan matriks yang berada di dua indeks terakhir dan disiarkan sesuai dengan itu
Pada akhirnya, 6 _0 dan np.dot([3,4,5],[7,8,9]) 9 berperilaku berbeda untuk perkalian skalar, dan untuk perkalian input dimensi yang lebih tinggi
Pertanyaan 2. Apa perbedaan antara 6 _0 dan 98 1 ?
6 0 dan 98 1 sangat mirip, dan secara efektif melakukan operasi yang sama
Perbedaannya adalah bahwa 6 0 adalah fungsi Python dan 98 1 adalah metode array Numpy
Jadi mereka secara efektif melakukan hal yang sama, tetapi Anda memanggil mereka dengan cara yang sedikit berbeda
Katakanlah kita memiliki dua array 2 dimensi
A_array_2d = np.arange(start = 3, stop = 9).reshape((2,3)) B_array_2d = np.arange(start = 10, stop = 16).reshape((3,2))Kita dapat memanggil fungsi 6 _0 sebagai berikut
import numpy as np _3Tapi kami menggunakan apa yang disebut "sintaks titik" untuk memanggil metode print(A_array_2d) 3
np.dot(2,3) _1Outputnya sama, tetapi sintaksnya sedikit berbeda
Jika Anda masih bingung tentang hal ini, pastikan untuk membaca lebih lanjut tentang perbedaan antara fungsi Python dan metode Python
Tinggalkan pertanyaan Anda yang lain di komentar di bawahApakah Anda masih memiliki pertanyaan tentang fungsi Numpy dot?
Jika demikian, tinggalkan pertanyaan Anda di bagian komentar di bawah
Bergabunglah dengan kursus kami untuk mempelajari lebih lanjut tentang Numpy
Dalam tutorial ini, saya telah menjelaskan cara menggunakan fungsi 6 0 untuk menghitung produk titik dari array 1D dan melakukan perkalian matriks dari array 2D
Ini akan membantu Anda memahami np.dot(2,3) 2, tetapi jika Anda benar-benar ingin belajar Numpy, masih banyak yang harus dipelajari
Jika Anda serius ingin menguasai Numpy, dan serius tentang ilmu data dengan Python, Anda harus mempertimbangkan untuk bergabung dengan kursus premium kami yang disebut Numpy Mastery
Numpy Mastery akan mengajari Anda semua yang perlu Anda ketahui tentang Numpy, termasuk
- Cara membuat array Numpy
- Apa yang dilakukan fungsi "Numpy random seed".
- Cara membentuk kembali, membagi, dan menggabungkan array Numpy Anda
- Cara menggunakan fungsi acak Numpy
- Cara melakukan operasi matematika pada array Numpy
- dan banyak lagi …
Selain itu, kursus ini akan menunjukkan sistem latihan yang akan membantu Anda menguasai sintaks dalam beberapa minggu. Kami akan menunjukkan kepada Anda sistem latihan yang memungkinkan Anda menghafal semua sintaks Numpy yang Anda pelajari. Jika Anda kesulitan mengingat sintaks Numpy, ini adalah kursus yang Anda cari