Ini adalah pertanyaan yang mudah tetapi katakanlah saya memiliki matriks MXN. Yang ingin saya lakukan adalah mengekstrak kolom tertentu dan menyimpannya di array numpy lainnya tetapi saya mendapatkan kesalahan sintaks yang tidak valid. Ini kodenya:
extractedData = data[[:,1],[:,9]].
Sepertinya baris di atas sudah cukup tetapi saya kira tidak. Saya melihat sekeliling tetapi tidak dapat menemukan sintaks yang bijaksana mengenai skenario khusus ini.
Dengan asumsi Anda ingin mendapatkan kolom 1 dan 9 dengan potongan kode itu, seharusnya:
sumber
jika Anda ingin mengekstrak hanya beberapa kolom:
jika Anda ingin mengecualikan kolom tertentu:
sumber
Satu hal yang ingin saya tunjukkan adalah, jika jumlah kolom yang ingin Anda ekstrak adalah 1, matriks yang dihasilkan tidak akan menjadi Matriks Mx1 seperti yang Anda harapkan, melainkan array yang berisi elemen-elemen kolom yang Anda ekstrak.
Untuk mengonversikannya ke Matrix, metode membentuk kembali (M, 1) harus digunakan pada array yang dihasilkan.
sumber
data[:, 8:9]
. Ini mengambil delapan kolom tetapi tidak menghapus dimensi ekstra.Hanya:
Kolom tidak harus berurutan:
sumber
Satu hal lagi yang harus Anda perhatikan ketika memilih kolom dari array ND menggunakan daftar seperti ini:
Jika Anda menghapus dimensi (dengan memilih hanya satu baris, misalnya), array yang dihasilkan akan (karena alasan tertentu) permutasi . Begitu:
sumber
Kamu bisa memakai :
extracted_data = data.ix[:,['Column1','Column2']]
sumber
Saya pikir solusinya di sini tidak bekerja dengan pembaruan versi python lagi, salah satu cara untuk melakukannya dengan fungsi python baru untuk itu adalah:
yang memberi Anda hasil yang diinginkan.
Dokumentasi dapat Anda temukan di sini: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_numpy.html#pandas.DataFrame.to_numpy
sumber
Anda juga dapat menggunakan extractedData = data ([:, 1], [:, 9])
sumber