Ilmu Data

Vektor, Matriks, dan Array Python dengan NumPy

Vektor, Matriks, dan Array Python dengan NumPy
Dalam pelajaran ini, kita akan melihat beberapa tips dan trik untuk bermain dengan vektor, matriks, dan array menggunakan library NumPy dengan Python. Pelajaran ini adalah titik awal yang sangat baik jika Anda memulai Ilmu Data dan memerlukan beberapa gambaran matematis pengantar dari komponen-komponen ini dan bagaimana kita dapat memainkannya menggunakan NumPy dalam kode.

Pustaka NumPy memungkinkan kita untuk melakukan berbagai operasi yang perlu dilakukan pada struktur data yang sering digunakan dalam Pembelajaran Mesin dan Ilmu Data seperti vektor, matriks, dan array. Kami hanya akan menampilkan operasi paling umum dengan NumPy yang digunakan di banyak pipeline Machine Learning. Akhirnya, harap dicatat bahwa NumPy hanyalah cara untuk melakukan operasi, jadi, operasi matematika yang kami tunjukkan adalah fokus utama dari pelajaran ini dan bukan paket NumPy itu sendiri. Mari kita mulai.

Apa itu Vektor??

Menurut Google, Vektor adalah besaran yang memiliki arah dan juga besaran, terutama dalam menentukan posisi suatu titik dalam ruang relatif terhadap titik lainnya.

Vektor sangat penting dalam Pembelajaran Mesin karena tidak hanya menggambarkan besarnya tetapi juga arah fitur. Kita dapat membuat vektor di NumPy dengan potongan kode berikut:

impor numpy sebagai np
baris_vektor = np.larik([1,2,3])
cetak(vektor_baris)

Dalam cuplikan kode di atas, kami membuat vektor baris. Kita juga dapat membuat vektor kolom sebagai:

impor numpy sebagai np
vektor_kol = np.larik([[1],[2],[3]])
cetak(vektor_kolom)

Membuat Matriks

Matriks dapat dipahami secara sederhana sebagai array dua dimensi. Kita dapat membuat matriks dengan NumPy dengan membuat array multidimensi:

matriks = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
cetak (matriks)

Meskipun matriks persis mirip dengan array multi-dimensi, struktur data matriks tidak disarankan karena dua alasan:

  1. Array adalah standar dalam hal paket NumPy
  2. Sebagian besar operasi dengan NumPy mengembalikan array dan bukan matriks

Menggunakan Matriks Jarang

Untuk mengingatkan, matriks jarang adalah matriks yang sebagian besar itemnya nol. Sekarang, skenario umum dalam pemrosesan data dan pembelajaran mesin adalah pemrosesan matriks di mana sebagian besar elemen adalah nol. Misalnya, pertimbangkan matriks yang barisnya menggambarkan setiap video di Youtube dan kolom mewakili setiap pengguna terdaftar. Setiap nilai menunjukkan apakah pengguna telah menonton video atau tidak. Tentu saja, sebagian besar nilai dalam matriks ini akan menjadi nol. Itu keuntungan dengan matriks jarang adalah bahwa itu tidak menyimpan nilai-nilai yang nol. Ini menghasilkan keuntungan komputasi yang sangat besar dan pengoptimalan penyimpanan juga.

Mari kita buat matriks percikan di sini:

dari scipy impor jarang
matriks_asli = np.array([[1, 0, 3], [0, 0, 6], [7, 0, 0]])
matriks_jarang = jarang.csr_matrix(matriks_asli)
cetak(matriks_jarang)

Untuk memahami cara kerja kode, kita akan melihat output di sini:

Dalam kode di atas, kami menggunakan fungsi NumPy untuk membuat Baris jarang terkompresi matriks di mana elemen bukan nol diwakili menggunakan indeks berbasis nol. Ada berbagai macam matriks sparse, seperti:

Kami tidak akan membahas matriks jarang lainnya di sini, tetapi ketahuilah bahwa masing-masing penggunaannya spesifik dan tidak ada yang bisa disebut sebagai 'terbaik'.

Menerapkan Operasi ke semua elemen Vektor

Ini adalah skenario umum ketika kita perlu menerapkan operasi umum ke beberapa elemen vektor. Ini dapat dilakukan dengan mendefinisikan lambda dan kemudian membuat vektor yang sama. Mari kita lihat beberapa cuplikan kode untuk hal yang sama:

matriks = np.Himpunan([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
mul_5 = lambda x: x * 5
vectorized_mul_5 = np.vektorisasi (mul_5)
vectorized_mul_5(matriks)

Untuk memahami cara kerja kode, kita akan melihat output di sini:

Dalam cuplikan kode di atas, kami menggunakan fungsi vectorize yang merupakan bagian dari library NumPy, untuk mengubah definisi lambda sederhana menjadi fungsi yang dapat memproses setiap elemen vektor. Penting untuk dicatat bahwa vektorisasi adalah hanya loop di atas elemen dan itu tidak berpengaruh pada kinerja program. NumPy juga memungkinkan penyiaran, yang berarti bahwa alih-alih kode kompleks di atas, kita bisa saja melakukan:

matriks * 5

Dan hasilnya akan sama persis. Saya ingin menunjukkan bagian yang kompleks terlebih dahulu, jika tidak, Anda akan melewatkan bagian itu!

Rata-rata, Varians dan Standar Deviasi

Dengan NumPy, mudah untuk melakukan operasi yang terkait dengan statistik deskriptif pada vektor. Mean dari sebuah vektor dapat dihitung sebagai:

np.rata-rata (matriks)

Varians dari sebuah vektor dapat dihitung sebagai:

np.var(matriks)

Standar deviasi dari sebuah vektor dapat dihitung sebagai:

np.std (matriks)

Output dari perintah di atas pada matriks yang diberikan diberikan di sini:

Transposisi Matriks

Transposing adalah operasi yang sangat umum yang akan Anda dengar setiap kali Anda dikelilingi oleh matriks. Transposing hanyalah cara untuk menukar nilai kolom dan baris dari sebuah matriks. Harap dicatat bahwa vektor tidak dapat ditransposisikan sebagai vektor hanyalah kumpulan nilai tanpa nilai-nilai itu dikategorikan ke dalam baris dan kolom. Harap dicatat bahwa mengonversi vektor baris ke vektor kolom bukanlah transposisi (berdasarkan definisi aljabar linier, yang berada di luar cakupan pelajaran ini).

Untuk saat ini, kita akan menemukan kedamaian hanya dengan mengubah matriks. Sangat mudah untuk mengakses transpos matriks dengan NumPy:

matriks.T

Output dari perintah di atas pada matriks yang diberikan diberikan di sini:

Operasi yang sama dapat dilakukan pada vektor baris untuk mengubahnya menjadi vektor kolom.

Meratakan Matriks

Kita dapat mengubah matriks menjadi array satu dimensi jika kita ingin memproses elemen-elemennya secara linier. Ini dapat dilakukan dengan cuplikan kode berikut:

matriks.meratakan()

Output dari perintah di atas pada matriks yang diberikan diberikan di sini:

Perhatikan bahwa matriks rata adalah array satu dimensi, cukup linier dalam mode.

Menghitung Nilai Eigen dan Vektor Eigen

Vektor Eigen sangat umum digunakan dalam paket Pembelajaran Mesin. Jadi, ketika fungsi transformasi linier disajikan sebagai matriks, maka X, vektor Eigen adalah vektor yang hanya berubah skala vektornya tetapi tidak arahnya. Kita dapat mengatakan bahwa:

Xv = v

Di sini, X adalah matriks persegi dan berisi nilai Eigen. Juga, v berisi vektor Eigen. Dengan NumPy, mudah untuk menghitung nilai Eigen dan vektor Eigen. Berikut adalah cuplikan kode tempat kami mendemonstrasikan hal yang sama:

nilai, vektor = np.linalg.eig(matriks)

Output dari perintah di atas pada matriks yang diberikan diberikan di sini:

Produk Titik dari Vektor

Produk Titik dari Vektor adalah cara mengalikan 2 vektor. Ini memberitahu Anda tentang berapa banyak vektor yang searah?, sebagai lawan dari perkalian silang yang menunjukkan kebalikannya, betapa kecilnya vektor-vektor tersebut dalam arah yang sama (disebut ortogonal). Kita dapat menghitung produk titik dari dua vektor seperti yang diberikan dalam potongan kode di sini:

a = np.larik([3, 5, 6])
b = np.larik([23, 15, 1])
np.titik (a, b)

Output dari perintah di atas pada array yang diberikan diberikan di sini:

Penjumlahan, Pengurangan, dan Perkalian Matriks

Menambah dan Mengurangi beberapa matriks adalah operasi yang cukup mudah dalam matriks. Ada dua cara yang bisa dilakukan. Mari kita lihat cuplikan kode untuk melakukan operasi ini. Untuk tujuan menjaga ini tetap sederhana, kami akan menggunakan matriks yang sama dua kali:

np.tambahkan (matriks, matriks)

Selanjutnya, dua matriks dapat dikurangkan sebagai:

np.pengurangan (matriks, matriks)

Output dari perintah di atas pada matriks yang diberikan diberikan di sini:

Seperti yang diharapkan, masing-masing elemen dalam matriks ditambahkan/dikurangi dengan elemen yang sesuai. Mengalikan matriks mirip dengan menemukan produk titik seperti yang kita lakukan sebelumnya:

np.titik (matriks, matriks)

Kode di atas akan menemukan nilai perkalian sebenarnya dari dua matriks, diberikan sebagai:

matriks * matriks

Output dari perintah di atas pada matriks yang diberikan diberikan di sini:

Kesimpulan

Dalam pelajaran ini, kita telah melalui banyak operasi matematika yang berhubungan dengan Vektor, Matriks dan Array yang umum digunakan Pengolahan data, statistik deskriptif dan ilmu data. Ini adalah pelajaran singkat yang hanya mencakup bagian yang paling umum dan paling penting dari berbagai konsep tetapi operasi ini harus memberikan ide yang sangat baik tentang apa yang semua operasi dapat dilakukan saat berurusan dengan struktur data ini.

Silakan bagikan tanggapan Anda secara bebas tentang pelajaran di Twitter dengan @linuxhint dan @sbmaggarwal (itu saya!).

Petakan ulang tombol mouse Anda secara berbeda untuk perangkat lunak yang berbeda dengan Kontrol Tombol X-Mouse
Mungkin Anda membutuhkan alat yang dapat membuat kontrol mouse Anda berubah dengan setiap aplikasi yang Anda gunakan. Jika demikian, Anda dapat mencob...
Ulasan Mouse Nirkabel Microsoft Sculpt Touch
Saya baru-baru ini membaca tentang Microsoft Sculpt Touch mouse nirkabel dan memutuskan untuk membelinya. Setelah menggunakannya untuk sementara waktu...
Trackpad dan Mouse Pointer di Layar AppyMouse untuk Tablet Windows
Pengguna tablet sering melewatkan penunjuk mouse, terutama ketika mereka terbiasa menggunakan laptop. Layar sentuh Smartphone dan tablet hadir dengan ...