Dalam beberapa tahun kebelakangan ini, penggunaan Python dalam pelbagai bidang telah berkembang dengan pesat, khususnya dalam bidang manipulasi data dan pengkomputeran saintifik. Salah satu perpustakaan yang paling biasa digunakan untuk tugasan ini ialah NumPy. NumPy ialah perpustakaan yang berkuasa dan serba boleh yang digunakan secara meluas untuk bekerja dengan tatasusunan dan matriks berbilang dimensi yang besar, antara fungsi matematik yang lain. Satu operasi biasa dalam bekerja dengan struktur data ini ialah keperluan untuk meruntuhkan atau mengurangkan dimensi terakhir tatasusunan. Dalam artikel ini, kami akan meneroka topik ini secara terperinci, bermula dengan pengenalan kepada masalah, diikuti dengan penyelesaian dan penjelasan langkah demi langkah bagi kod tersebut. Akhir sekali, kami akan menyelidiki beberapa topik dan perpustakaan berkaitan yang mungkin menarik.
Keperluan untuk melipat dimensi terakhir tatasusunan boleh timbul dalam pelbagai situasi, seperti apabila anda telah mengira hasil daripada tatasusunan berbilang dimensi dan ingin mendapatkan perwakilan data yang lebih ringkas dan dikurangkan. Operasi ini pada asasnya melibatkan transformasi tatasusunan asal kepada tatasusunan yang mempunyai dimensi yang lebih sedikit dengan menghapuskan, atau melipat, dimensi terakhir di sepanjang paksinya.
Penyelesaian: Menggunakan np.squeeze
Salah satu cara untuk menangani masalah ini adalah dengan menggunakan fungsi numpy.squeeze . Fungsi ini mengalih keluar entri satu dimensi daripada bentuk tatasusunan input.
import numpy as np
arr = np.random.rand(2, 3, 1)
print("Original array shape:", arr.shape)
collapsed_arr = np.squeeze(arr, axis=-1)
print("Collapsed array shape:", collapsed_arr.shape)
Penjelasan Langkah demi Langkah
Mari kita pecahkan kod tersebut dan fahami cara ia berfungsi.
1. Pertama, kami mengimport perpustakaan NumPy sebagai np:
import numpy as np
2. Seterusnya, kami mencipta tatasusunan rawak 3 dimensi dengan bentuk (2, 3, 1):
arr = np.random.rand(2, 3, 1)
print("Original array shape:", arr.shape)
3. Sekarang, kita menggunakan fungsi np.squeeze untuk melipat dimensi terakhir array dengan menentukan parameter paksi sebagai -1:
collapsed_arr = np.squeeze(arr, axis=-1)
print("Collapsed array shape:", collapsed_arr.shape)
4. Hasilnya, kami memperoleh tatasusunan baharu dengan bentuk (2, 3), menunjukkan bahawa dimensi terakhir telah berjaya diruntuhkan.
Penyelesaian Alternatif: Bentuk semula
Satu lagi cara untuk melipat dimensi terakhir adalah dengan menggunakan fungsi numpy.reshape dengan parameter yang betul untuk mencapai hasil yang diingini.
collapsed_arr_reshape = arr.reshape(2, 3)
print("Collapsed array shape using reshape:", collapsed_arr_reshape.shape)
Dalam kes ini, kami telah membentuk semula tatasusunan asal secara eksplisit untuk mempunyai bentuk (2, 3), dengan berkesan meruntuhkan dimensi terakhir.
Perpustakaan dan Fungsi Berkaitan
Selain NumPy, terdapat beberapa pustaka lain dalam ekosistem Python yang menawarkan alat untuk bekerja dengan tatasusunan dan matriks. Salah satu pustaka tersebut ialah SciPy , yang dibina berdasarkan NumPy dan menyediakan fungsi tambahan untuk pengkomputeran saintifik. Dalam bidang pembelajaran mesin, pustaka TensorFlow juga berfungsi dengan tensor (iaitu, tatasusunan berbilang dimensi) dan menyediakan set fungsi manipulasi matriksnya sendiri. Di samping itu, pustaka Pandas boleh digunakan untuk memanipulasi DataFrames , struktur data peringkat lebih tinggi yang boleh dianggap sebagai jadual yang mengandungi tatasusunan. Tambahan pula, operasi numpy.newaxis membolehkan anda menambah paksi baharu pada tatasusunan, yang boleh berguna apabila anda perlu mengembangkan dimensi tatasusunan agar sepadan dengan bentuk yang diperlukan untuk sesuatu operasi.
Kesimpulannya, keupayaan untuk memanipulasi dan bekerja dengan tatasusunan secara berkesan adalah kemahiran penting dalam dunia pengaturcaraan dan sains data. NumPy ialah perpustakaan yang sangat berkuasa yang menyediakan kefungsian yang meluas dan teknik memahami seperti meruntuhkan dimensi terakhir akan memberi manfaat dalam pelbagai situasi apabila berurusan dengan set data yang besar dan kompleks.