Sains Data

Cara Mengira Matriks dalam Python Tanpa NumPy

Cara Mengira Matriks dalam Python Tanpa NumPy
Untuk banyak aplikasi, anda memerlukan matematik. Di Python terdapat modul matematik yang menangani asas seperti fungsi pembundaran, pemfaktoran dan pembundaran. Ia juga merangkumi fungsi Power & logarithmic, trigonometry, sudut dan hiperbolik. Untuk nombor kompleks, modulnya adalah cmath. Ini tidak mengendalikan operasi matriks.

Apakah perbezaan antara tatasusunan dan matriks?

Sebilangan orang mencari penyelesaian matriks untuk menyelesaikan masalah, jadi apa bezanya?  Perbezaan besarnya adalah bahawa nilai matriks adalah nombor, array boleh mengandungi maklumat lain, bahkan rentetan.  Matriks dapat mewakili persamaan, di sinilah kebanyakan pembangun memerlukannya, sekurang-kurangnya dalam kes menggantikan NumPy.

Bagaimana anda membuat pengiraan matriks?

Operasi matriks standard mudah dibuat, semasa menambahkan anda hanya menambah elemen, ketika mengalikan anda boleh menggunakan skalar ke setiap elemen dan sebagainya.

Pendaraban sedikit lebih kompleks tetapi sangat sedikit. Yang membebankan adalah bahawa anda perlu melakukan banyak pengiraan untuk setiap penyelesaian, di sinilah prestasi masuk. Oleh kerana sebahagian besar pengiraan tidak bergantung pada satu sama lain, pengiraan ini adalah calon yang sangat baik untuk pengiraan selari. GPU direka untuk pengiraan seperti ini dan mereka dirancang untuk ditambahkan ke sistem desktop dengan mudah.

Apabila anda perlu melakukan pengiraan matriks di Python, penyelesaian pertama yang anda dapati adalah numPy.  Walau bagaimanapun, NumPy tidak selalu merupakan sistem yang paling berkesan untuk mengira banyak matriks.
Catatan ini akan merangkumi pilihan apa yang anda ada di Python.

Apabila anda memerlukan alternatif, mulakan dengan melihat dengan lebih teliti apa yang anda perlukan untuk operasi matriks. Pemasangan semasa anda mungkin sudah ada, baik pelaksanaannya sendiri, atau menggunakan perpustakaan yang mendasari. Contohnya adalah Pembelajaran Mesin, di mana keperluan untuk operasi matriks adalah yang terpenting. TensorFlow mempunyai perpustakaan sendiri untuk operasi matriks. Pastikan anda mengetahui perpustakaan anda sekarang.

Dalam banyak kes, anda memerlukan penyelesaian yang sesuai untuk anda. Mungkin ada batasan dalam NumPy, beberapa perpustakaan lebih pantas daripada NumPy dan dibuat khas untuk matriks. Berkali-kali, pembangun ingin mempercepat kod mereka sehingga mereka mula mencari alternatif. Salah satu sebabnya ialah NumPy tidak dapat dijalankan pada GPU.

Walaupun catatan ini mengenai alternatif untuk NumPy, perpustakaan yang dibina di atas NumPy, Perpustakaan Theano perlu disebutkan. Perpustakaan Theano digabungkan dengan NumPy dan membolehkan matriks yang disokong GPU. Theano adalah perpustakaan yang lebih besar untuk pembelajaran mesin tetapi anda hanya boleh mengeluarkan fungsi matriks.

Untuk penjelasan lebih mendalam mengenai penggunaan Theano, lihat halaman ini: http: // www.marekrei.com / blog / theano-tutorial /

SpPy adalah perpustakaan khusus untuk susunan jarang, ia masih boleh digunakan untuk matriks. Susunan jarang, by the way, adalah susunan yang mempunyai banyak nilai sifar di dalamnya. Perpustakaan ini kecil dan cekap tetapi agak terhad kerana pengkhususannya. Ia juga menggunakan NumPy tetapi lebih cekap daripada hanya NumPy.
https: // dihidupkan.org / sppy /

Eigen adalah pelaksanaan matriks yang cekap, untuk menggunakannya di Python, anda memerlukan miniEigen, tersedia di https: // pypi.org / pypi / minieigen. Eigen sebenarnya termasuk dalam banyak penyelesaian lain. Ia berfungsi sebagai perpustakaan matriks generik untuk modul dan kerangka kerja yang lebih khusus. Perpustakaan ini mempunyai banyak modul untuk manipulasi matriks dan array yang padat. Ia juga menyokong aljabar linear, penguraian dan aljabar linear yang jarang. Pakej ini juga mempunyai fungsi plugin sehingga anda dapat menambahkan modul anda sendiri.
Untuk menggunakan Eigen, pasang dengan pip dan import dalam kod anda.

PyTorch adalah perpustakaan untuk Pembelajaran Mesin, kerana ini mempunyai operasi matriks. Mengimport keseluruhan perpustakaan adalah berlebihan jika anda hanya ingin membuat beberapa pengiraan. Namun, jika anda baru memulakan projek pembelajaran mesin, pastikan anda memutuskan apakah ini sesuai untuk anda.
Alternatif lain adalah dengan mengambil mana-mana perpustakaan C dan menggunakannya. Untuk menjadikannya mungkin, ada penyelesaian bernama cffi yang akan membuat antara muka untuk anda. Penyelesaian ini menghendaki anda sudah mengetahui C dan anda membuat pembungkus untuk setiap fungsi yang anda perlukan. Kod tersebut akan kelihatan kacau dan sukar dibaca tetapi ini mungkin bernilai bergantung pada projek anda.

Sekiranya anda hanya ingin mempercepat semua fungsi array dan numerik, anda boleh menggunakan numba sebagai gantinya. Numba adalah penyusun Python. Apabila anda menggunakannya, penyusun akan membuat kod binari 'tepat pada waktunya', jit. Idea jit lebih sering digunakan dengan Java tetapi sangat berguna untuk matematik berat di Python. Oleh kerana Python ditafsirkan, anda boleh mendapatkan masalah prestasi dengan matematik berat, numba menguruskannya dengan menyusun CPU atau GPU mengikut pilihan anda.
Terdapat juga ciri pengkomputeran selari yang tersedia, secara lalai pengkomputer berjalan dengan kunci yang menghentikan banyak utas berjalan pada masa yang sama. Anda boleh mematikannya dengan bendera selagi anda mengetahui kemungkinan masalah yang berkaitan dengan pengaturcaraan selari.

Kesimpulannya

Sering kali semasa anda memulakan pengaturcaraan dalam Python, atau bahasa lain, anda menghadapi batasan bahasa, penyusun atau sesuatu yang lain. Apabila anda berada dalam situasi ini, anda harus berhenti dan memikirkan batasan apa yang anda ada dan mempertimbangkan berapa banyak orang lain yang mengalami situasi yang sama. Dalam kes Python dan NumPy, banyak saintis dan pemaju telah menulis kod yang memerlukan pelaksanaan yang cepat. Warisan ini telah mencipta sebilangan besar cabang yang dapat menyelesaikan masalah anda tanpa memaksa anda menukar bahasa atau menulis pelanjutan baru ke bahasa tertentu ini.

Pasang Dolphin Emulator terkini untuk Gamecube & Wii di Linux
Dolphin Emulator membolehkan anda memainkan permainan Gamecube & Wii pilihan anda di Komputer Peribadi Linux (PC). Menjadi emulator permainan sumber ...
Cara Menggunakan Mesin Cheat GameConqueror di Linux
Artikel ini merangkumi panduan mengenai penggunaan mesin cheat GameConqueror di Linux. Ramai pengguna yang bermain permainan di Windows sering menggun...
Emulator Konsol Permainan Terbaik untuk Linux
Artikel ini akan menyenaraikan perisian emulasi konsol permainan popular yang tersedia untuk Linux. Emulation adalah lapisan keserasian perisian yang ...