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

Mengapa Transposing 1D NumPy Array Tidak Mengubah Bentuknya?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-10 13:16:02872semak imbas

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)

Outputnya ialah:

[5 4]
[5 4]

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)

Output kini menjadi:

[[5 4]]
[[5]
 [4]]

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!

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