Memindahkan Tatasusunan NumPy: Menyahkod Kelakuan Matriks 1D
Apabila berurusan dengan tatasusunan NumPy, adalah penting untuk memahami tingkah laku operasi transpos, terutamanya untuk tatasusunan 1D. Memindahkan tatasusunan 1D menghasilkan tatasusunan 1D yang lain, bertentangan dengan jangkaan biasa.
Kekeliruan dengan Operasi Transpos
Pertimbangkan kod NumPy berikut:
import numpy as np a = np.array([5,4]) print(a) print(a.T)
Dalam senario ini, menggunakan a.T tidak mengubah tatasusunan seperti yang mungkin diandaikan. Sebaliknya, ia mengembalikan tatasusunan tidak berubah.
Gelagat Transpose Tatasusunan 1D
Sebab di sebalik gelagat ini terletak pada sifat asas tatasusunan 1D dalam NumPy. Tidak seperti MATLAB, NumPy tidak membezakan antara tatasusunan 1D dan 2D. Tatasusunan 1D dalam NumPy pada asasnya ialah tatasusunan 2D dengan dimensi (1, n), di mana n mewakili panjang tatasusunan.
Oleh itu, mengubah tatasusunan 1D hanya menyusun semula elemen sepanjang satu paksi, menghasilkan Tatasusunan 2D dengan dimensi (n, 1). Dalam contoh yang diberikan, operasi transpos tidak mempunyai kesan yang boleh dilihat kerana tatasusunan sudah menjadi tatasusunan dimensi (1, 2) dan sebarang putaran paksi akan kekal sebagai tatasusunan 1D.
Mencipta Tatasusunan 2D untuk Transposisi
Jika hasil yang diingini adalah untuk menukar tatasusunan 1D kepada tatasusunan 2D, seseorang boleh menggunakan np.newaxis (atau yang setara, Tiada) untuk mencipta dimensi tambahan.
a = np.array([5,4])[np.newaxis] print(a) print(a.T)
Dengan menambahkan dimensi dengan np.newaxis, tatasusunan yang terhasil menjadi tatasusunan dimensi (1, 2), membolehkan transposisi yang betul.
Cerapan Tambahan
Dalam kebanyakan senario praktikal, bagaimanapun, transposisi eksplisit tatasusunan 1D adalah tidak diperlukan. NumPy menyiarkan tatasusunan 1D secara automatik ke dimensi yang lebih tinggi semasa pengiraan, menjadikannya telus kepada pengguna sama ada ia beroperasi dengan vektor baris atau lajur.
Atas ialah kandungan terperinci Mengapa Memindahkan Tatasusunan NumPy 1D Tidak Berubah Bentuknya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!