Misalkan saya memiliki dan mxn array. Saya ingin meneruskan setiap kolom dari larik ini ke suatu fungsi untuk melakukan beberapa operasi di seluruh kolom. Bagaimana cara melakukan iterasi pada kolom array?
Misalnya, saya memiliki array 4 x 3 seperti
1 99 2
2 14 5
3 12 7
4 43 1
for column in array:
some_function(column)
di mana kolom akan menjadi "1,2,3,4" di iterasi pertama, "99,14,12,43" di iterasi kedua, dan "2,5,7,1" di iterasi ketiga.
Jawaban:
Cukup lakukan iterasi atas transposisi array Anda:
sumber
array.T
tidak mahal, karena itu hanya mengubah 'langkah'array
(lihat jawaban ini untuk diskusi yang menarik)Ini seharusnya memberi Anda awal
sumber
Untuk array tiga dimensi Anda bisa mencoba:
Lihat dokumen tentang cara
array.transpose
kerjanya. Pada dasarnya Anda menentukan dimensi mana yang akan digeser. Dalam hal ini kami menggeser dimensi kedua (misalnya kolom) ke dimensi pertama.sumber
sumber
Anda juga dapat menggunakan unzip untuk mengulang melalui kolom
sumber
Misalnya Anda ingin mencari rata-rata setiap kolom dalam matriks. Mari buat matriks berikut
Fungsi mean adalah
Untuk melakukan apa yang diperlukan dan menyimpan hasil dalam 'hasil' vektor titik dua
Hasilnya adalah: larik ([4.33333333, 5., 5.66666667, 4.])
sumber
Atau, Anda bisa menggunakan
enumerate
. Ini memberi Anda nomor kolom dan nilai kolom juga.sumber