Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Petua |. Ini mungkin tutorial grafik NumPy terbaik yang pernah saya lihat!

Petua |. Ini mungkin tutorial grafik NumPy terbaik yang pernah saya lihat!

Python当打之年
Python当打之年ke hadapan
2023-08-10 16:08:121170semak imbas


NumPy ialah pakej perisian penting dalam Python untuk analisis data, pembelajaran mesin dan pengkomputeran saintifik. Ia sangat memudahkan operasi dan pemprosesan vektor dan matriks. Banyak pakej perisian pemprosesan data untuk python bergantung pada NumPy sebagai teras sebahagian daripada infrastrukturnya (seperti scikit-learn, SciPy, panda dan tensorflow). Sebagai tambahan kepada fungsi penghirisan data dan pencelupan data, menguasai numpy juga memberi kelebihan kepada pembangun apabila menggunakan pelbagai perpustakaan pemprosesan data untuk menyahpepijat dan mengendalikan kes penggunaan yang kompleks.


Petua |. Ini mungkin tutorial grafik NumPy terbaik yang pernah saya lihat!


Dalam artikel ini, kami akan memperkenalkan kegunaan utama NumPy dan cara ia membentangkan pelbagai jenis data (jadual, imej, teks, dsb.) Data ini diproses oleh Numpy menjadi Input kepada model pembelajaran mesin.


Operasi tatasusunan dalam NumPy
Kita boleh mencipta tatasusunan NumPy (aka ndarray yang berkuasa) dengan menghantar senarai python ke dalam np.array(). Dalam contoh berikut, tatasusunan yang dibuat ditunjukkan di sebelah kanan Biasanya, kami mahu NumPy memulakan nilai tatasusunan untuk kami Untuk tujuan ini, NumPy menyediakan fungsi seperti one(), zeros() dan random.random(. ) kaedah. Kita hanya perlu memasukkan bilangan elemen:

Setelah kami mencipta tatasusunan, kami boleh melakukan beberapa aplikasi menarik dengannya, yang akan diterangkan di bawah.


Operasi aritmetik pada tatasusunan


Mari kita buat dua tatasusunan NumPy, dipanggil data dan satu:


Petua |. Ini mungkin tutorial grafik NumPy terbaik yang pernah saya lihat!



Untuk mengira dua tatasusunan Sebagai tambahan, hanya taip data + satu untuk menambah data pada kedudukan yang sepadan (iaitu, menambah setiap baris data Operasi ini lebih ringkas daripada kod kaedah gelung untuk membaca tatasusunan).

Petua |. Ini mungkin tutorial grafik NumPy terbaik yang pernah saya lihat!


🎜🎜🎜Sudah tentu, berdasarkan ini, kita juga boleh melaksanakan operasi seperti tolak, darab dan bahagi: 🎜🎜


Petua |. Ini mungkin tutorial grafik NumPy terbaik yang pernah saya lihat!


Dalam banyak kes, kami ingin melaksanakan operasi pada tatasusunan dan nilai tunggal (juga dipanggil operasi antara vektor dan skalar). Contohnya: jika tatasusunan mewakili jarak dalam batu, matlamat kami adalah untuk menukarnya kepada kilometer. Ia boleh ditulis secara ringkas sebagai data * 1.6:


Petua |. Ini mungkin tutorial grafik NumPy terbaik yang pernah saya lihat!


NumPy tahu melalui penyiaran tatasusunan bahawa operasi ini memerlukan pendaraban setiap elemen tatasusunan.


Operasi menghiris tatasusunan


Kami boleh mengindeks dan menghiris tatasusunan NumPy seperti operasi senarai ular sawa, seperti yang ditunjukkan di bawah:


Petua |. Ini mungkin tutorial grafik NumPy terbaik yang pernah saya lihat!


Fungsi pengagregatan

dibawa ke


kami oleh NumPy Dengan mudah, terdapat juga fungsi pengagregatan, yang boleh memampatkan data dan mengira beberapa nilai ciri dalam tatasusunan:


Petua |. Ini mungkin tutorial grafik NumPy terbaik yang pernah saya lihat!


Selain fungsi seperti min, maks dan jumlah, terdapat juga min (mean min), prod (pendaraban data) mengira hasil darab semua elemen, std (sisihan piawai), dsb. Semua contoh di atas berkaitan dengan vektor dalam satu dimensi. Selain itu, bahagian utama keindahan NumPy ialah keupayaannya untuk menggunakan semua fungsi yang telah kita lihat setakat ini ke mana-mana dimensi.

Operasi matriks dalam NumPy


Kita boleh mencipta matriks dengan melepasi dua- senarai dimensi kepada Numpy.

np.array([[1,2],[3,4]])

Petua |. Ini mungkin tutorial grafik NumPy terbaik yang pernah saya lihat!


Selain itu, anda juga boleh menggunakan one(), zeros() dan random.random() yang disebutkan di atas untuk mencipta matriks, cuma masukkan tuple untuk menerangkan dimensi matriks:

. NumPy menggunakan operasi mengikut kedudukan untuk operasi sedemikian:


Petua |. Ini mungkin tutorial grafik NumPy terbaik yang pernah saya lihat!


Untuk matriks yang berlainan saiz, kita hanya boleh melaksanakan operasi aritmetik ini apabila dimensi kedua-dua matriks adalah sama dengan 1 (contohnya, matriks hanya mempunyai satu lajur atau satu baris Dalam kes ini, NumPy menggunakan peraturan penyiaran). (siaran) untuk pemprosesan operasi. NumPy menyediakan kaedah dot(), yang boleh digunakan untuk melaksanakan operasi produk titik antara matriks:


Petua |. Ini mungkin tutorial grafik NumPy terbaik yang pernah saya lihat!


Dimensi matriks ditambah di bahagian bawah rajah di atas untuk menekankan matriks operasi berada dalam lajur dan Baris mestilah sama. Operasi ini boleh digambarkan seperti berikut:


Petua |. Ini mungkin tutorial grafik NumPy terbaik yang pernah saya lihat!


Penghirisan dan pengagregatan matriks


Fungsi pengindeksan dan penghirisan menjadi lebih berguna apabila memanipulasi matriks. Data boleh dihiris menggunakan operasi indeks pada dimensi yang berbeza. Kita boleh mengagregat matriks sama seperti kita mengagregatkan vektor: nilai, anda juga boleh menentukannya menggunakan parameter paksi Pengagregatan baris dan lajur:

Transposisi dan pembinaan semula matriks Sifat T tatasusunan NumPy boleh digunakan untuk mendapatkan transpose matriks.


Petua |. Ini mungkin tutorial grafik NumPy terbaik yang pernah saya lihat!


Dalam kes penggunaan yang lebih kompleks, anda mungkin mendapati diri anda perlu menukar dimensi matriks. Ini adalah perkara biasa dalam aplikasi pembelajaran mesin, contohnya, jika bentuk matriks input model berbeza daripada set data, anda boleh menggunakan kaedah bentuk semula() NumPy. Hanya masukkan dimensi baru yang diperlukan matriks. Anda juga boleh lulus dalam -1 dan NumPy boleh membuat kesimpulan dimensi yang betul berdasarkan matriks anda:


Petua |. Ini mungkin tutorial grafik NumPy terbaik yang pernah saya lihat!


Semua fungsi di atas boleh digunakan untuk data berbilang dimensi, dan struktur data pusatnya dipanggil ndarray (tatasusunan N-dimensi).


Petua |. Ini mungkin tutorial grafik NumPy terbaik yang pernah saya lihat!


Banyak kali, menukar dimensi hanyalah masalah menambah koma pada parameter fungsi NumPy, seperti ditunjukkan di bawah:


Petua |. Ini mungkin tutorial grafik NumPy terbaik yang pernah saya lihat!


🎜🎜🎜



Contoh aplikasi formula dalam NumPy





Kes penggunaan utama untuk NumPy ialah melaksanakan formula matematik yang berfungsi dengan matriks dan vektor. Ini juga sebab mengapa NumPy biasanya digunakan dalam Python. Sebagai contoh, ralat min kuasa dua ialah teras model pembelajaran mesin yang diselia untuk menangani masalah regresi:


Petua |. Ini mungkin tutorial grafik NumPy terbaik yang pernah saya lihat!


Ralat min kuasa dua boleh dilaksanakan dengan mudah dalam NumPy


:

Petua |. Ini mungkin tutorial grafik NumPy terbaik yang pernah saya lihat!


Kelebihan ini ialah numpy tidak perlu mempertimbangkan nilai khusus yang terkandung dalam ramalan dan label. DigestBacteria akan melalui empat operasi dalam baris kod di atas melalui contoh:


Petua |. Ini mungkin tutorial grafik NumPy terbaik yang pernah saya lihat!


Kedua-dua ramalan dan vektor label mengandungi tiga nilai. Ini bermakna nilai n ialah 3. Selepas kita melakukan penolakan, kita akan mendapat nilai seperti ini:


Petua |. Ini mungkin tutorial grafik NumPy terbaik yang pernah saya lihat!


Kita kemudian boleh mengira kuasa dua setiap nilai dalam vektor:


Petua |. Ini mungkin tutorial grafik NumPy terbaik yang pernah saya lihat!


Sekarang kita menjumlahkan nilai-nilai ini:


Petua |. Ini mungkin tutorial grafik NumPy terbaik yang pernah saya lihat!



🎜 akhirnya untuk mendapatkan nilai untuk kualiti ini. 🎜🎜🎜🎜🎜



Gunakan NumPy untuk mewakili data harian




harian Bagaimana untuk mewakili jenis data yang anda hubungi, seperti hamparan, imej, audio, dsb.? Numpy boleh menyelesaikan masalah ini.


Jadual dan Hamparan


Hamparan atau lembaran data ialah kedua-dua matriks dua dimensi. Setiap lembaran kerja dalam hamparan boleh menjadi pembolehubahnya sendiri. Struktur serupa dalam Python ialah bingkai data panda, yang sebenarnya dibina menggunakan NumPy.


Petua |. Ini mungkin tutorial grafik NumPy terbaik yang pernah saya lihat!


Audio dan Siri Masa


Fail audio ialah susunan satu dimensi sampel. Setiap sampel ialah nombor yang mewakili segmen kecil isyarat audio. Audio berkualiti CD mungkin mempunyai 44,100 sampel sesaat, setiap sampel adalah integer antara -65535 dan 65536. Ini bermakna jika anda mempunyai fail WAVE berkualiti CD 10 saat, anda boleh memuatkannya ke dalam susunan NumPy dengan panjang 10 * 44,100 = 441,000 sampel. Ingin mengekstrak detik pertama audio? Hanya muatkan fail ke dalam tatasusunan NumPy yang kami panggil audio dan memintas audio[:44100].


Berikut ialah fail audio:


Petua |. Ini mungkin tutorial grafik NumPy terbaik yang pernah saya lihat!


Begitu juga dengan data siri masa (cth., jujukan harga saham dari semasa ke semasa).


Imej


Imej ialah matriks piksel bersaiz (tinggi × lebar). Jika imej adalah hitam dan putih (juga dipanggil imej skala kelabu), setiap piksel boleh diwakili oleh satu nombor (biasanya antara 0 (hitam) dan 255 (putih)). Jika anda sedang memproses imej, anda boleh memangkas kawasan 10 x 10 piksel di penjuru kiri sebelah atas imej menggunakan imej[:10,:10] dalam NumPy.


Ini ialah coretan fail imej:


Petua |. Ini mungkin tutorial grafik NumPy terbaik yang pernah saya lihat!


🎜🎜 diwakili dengan warna merah, jika setiap imej berwarna biru. Dalam kes ini kita memerlukan dimensi ketiga (kerana setiap sel hanya boleh mengandungi satu nombor). Jadi imej warna diwakili oleh ndarray dengan dimensi (tinggi x lebar x 3). 🎜🎜


Petua |. Ini mungkin tutorial grafik NumPy terbaik yang pernah saya lihat!


Bahasa


Perkara berbeza jika kita berurusan dengan teks. Mewakili teks secara berangka memerlukan dua langkah, membina perbendaharaan kata (senarai semua perkataan unik yang diketahui model) dan membenamkan. Mari lihat langkah-langkah untuk mewakili petikan purba ini (diterjemahkan) secara numerik: "Adakah penyair yang mendahului saya meninggalkan sebarang tema tanpa didendangkan?" secara numerik mewakili pantun Penyair medan perang ini. Kita boleh membiarkan model memproses set data kecil dan menggunakan set data ini untuk membina perbendaharaan kata (71,290 perkataan):



Ayat itu kemudiannya boleh dibahagikan kepada satu siri token "perkataan" (perkataan atau bahagian perkataan berdasarkan peraturan biasa):


Petua |. Ini mungkin tutorial grafik NumPy terbaik yang pernah saya lihat!


Kemudian kita gantikan setiap perkataan dengan idnya perbendaharaan kata:


Petua |. Ini mungkin tutorial grafik NumPy terbaik yang pernah saya lihat!


ID ini masih tidak memberikan maklumat berharga kepada model. Oleh itu, sebelum menyuapkan urutan perkataan ke dalam model, token/perkataan perlu digantikan dengan pembenaman (dalam kes ini menggunakan pembenaman word2vec 50 dimensi):


Petua |. Ini mungkin tutorial grafik NumPy terbaik yang pernah saya lihat!


Anda dapat melihat bahawa dimensi tatasusunan NumPy ini ialah [dimensi_benam x panjang_jujukan].


Dalam amalan, nilai ini tidak semestinya kelihatan seperti ini, tetapi saya mempersembahkannya dengan cara ini untuk konsistensi visual. Atas sebab prestasi, model pembelajaran mendalam cenderung untuk mengekalkan dimensi pertama saiz kelompok (kerana model boleh dilatih lebih cepat jika berbilang contoh dilatih secara selari). Jelas sekali, ini adalah tempat yang baik untuk menggunakan reshape(). Contohnya, model seperti BERT menjangkakan matriks inputnya berbentuk: [saiz_kelompok, panjang_jujukan, saiz_benam].


Ini ialah koleksi nombor yang model boleh memproses dan melakukan pelbagai operasi berguna. Saya meninggalkan banyak baris kosong yang boleh diisi dengan contoh tambahan untuk latihan model (atau ramalan).

Atas ialah kandungan terperinci Petua |. Ini mungkin tutorial grafik NumPy terbaik yang pernah saya lihat!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:Python当打之年. Jika ada pelanggaran, sila hubungi admin@php.cn Padam