Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa Transposing 1D NumPy Array Tidak Mengubah Bentuknya?

Mengapa Transposing 1D NumPy Array Tidak Mengubah Bentuknya?

Mary-Kate Olsen
Lepaskan: 2024-11-10 13:16:02
asal
876 orang telah melayarinya

Why Doesn't Transposing a 1D NumPy Array Change Its Shape?

Memindahkan Tatasusunan NumPy 1D: Penyelesaian Mudah Yang Mengejutkan

Ramai pengaturcara menghadapi kekeliruan apabila cuba menukar tatasusunan NumPy 1D. Mari kita mendalami isu ini dan temukan penyelesaian yang sangat mudah.

Dalam NumPy, operasi transpos yang dilambangkan dengan .T menukar dimensi tatasusunan. Walau bagaimanapun, jika tatasusunan ialah 1D, bentuknya kekal sama selepas transposisi. Ini boleh membingungkan bagi mereka yang menjangkakan tatasusunan 2D sebagai hasilnya.

Untuk menggambarkan, pertimbangkan kod berikut:

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

Outputnya ialah:

[5 4]
[5 4]
Salin selepas log masuk

Seperti yang anda lihat, mengubah susunan 1D a tidak menghasilkan perubahan bentuk. Ini kerana transpose tatasusunan 1D masih merupakan tatasusunan 1D.

Penyelesaian terletak pada menukar tatasusunan 1D kepada tatasusunan 2D sebelum mengubahnya. Ini boleh dicapai menggunakan fungsi np.newaxis, yang pada asasnya memasukkan paksi baharu ke dalam tatasusunan:

a = np.array([5, 4])[np.newaxis]
print(a)
print(a.T)
Salin selepas log masuk

Output kini menjadi:

[[5 4]]
[[5]
 [4]]
Salin selepas log masuk

Susun atur 1D a telah berjaya ditukar kepada tatasusunan 2D, dan mengubahnya menghasilkan hasil yang diingini.

Adalah penting untuk ambil perhatian bahawa dalam kebanyakan kes, tidak perlu menukar tatasusunan 1D kepada tatasusunan 2D secara manual untuk transposisi. NumPy menyiarkan tatasusunan 1D secara automatik apabila melakukan pelbagai operasi, menghapuskan keperluan untuk bimbang tentang dimensi.

Atas ialah kandungan terperinci Mengapa Transposing 1D NumPy Array Tidak Mengubah 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