Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa `a.T` Tidak Mengubah Tatasusunan NumPy 1D?

Mengapa `a.T` Tidak Mengubah Tatasusunan NumPy 1D?

Susan Sarandon
Susan Sarandonasal
2024-11-10 21:46:021028semak imbas

Why Doesn't `a.T` Transpose a 1D NumPy Array?

Cara Mengubah Tatasusunan 1D NumPy

Apabila bekerja dengan perpustakaan NumPy Python, memahami konsep transposisi adalah penting untuk memanipulasi tatasusunan. Walau bagaimanapun, kekeliruan boleh timbul apabila cuba menukar tatasusunan 1D.

Untuk menggambarkan, pertimbangkan kod berikut:

import numpy as np
a = np.array([5,4])
print(a)
print(a.T)

Output kod ini mendedahkan bahawa a.T tidak menukar tatasusunan sebagai dijangka. Ini kerana transpose tatasusunan 1D juga merupakan tatasusunan 1D. Sebaliknya, apabila tatasusunan ialah 2D, seperti `[[],[]], transpose menukar baris dan lajur dengan betul.

Untuk mendapatkan transpose yang dikehendaki bagi tatasusunan 1D, anda boleh menukarnya menjadi Tatasusunan 2D dan kemudian alihkannya. Ini dicapai menggunakan np.newaxis (atau Tiada), yang menambahkan dimensi tambahan pada tatasusunan:

a = np.array([5,4])[np.newaxis]
print(a)
print(a.T)

Proses ini menukar vektor kepada vektor lajur dengan berkesan dan kemudian menukarnya dengan betul.

Adalah penting untuk ambil perhatian bahawa dalam kebanyakan kes, menambah dimensi tambahan adalah tidak perlu kerana NumPy menyiarkan tatasusunan 1D secara automatik dalam pengiraan, berkesan menghapuskan keperluan untuk membezakan antara vektor baris dan lajur.

Atas ialah kandungan terperinci Mengapa `a.T` Tidak Mengubah Tatasusunan NumPy 1D?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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