Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa Memindahkan Tatasusunan NumPy 1D Tidak Berubah Bentuknya?

Mengapa Memindahkan Tatasusunan NumPy 1D Tidak Berubah Bentuknya?

Susan Sarandon
Lepaskan: 2024-11-11 12:14:03
asal
939 orang telah melayarinya

Why Does Transposing a 1D NumPy Array Not Change Its Shape?

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan