Bagaimana kita bisa membalikkan array dengan python?

Terkadang saat memprogram dengan Python, kita perlu menggunakan Python untuk membalikkan array NumPy. Di Python, kebalikan dari array NumPy menunjukkan perubahan urutan. Elemen pertama akan menjadi elemen terakhir, elemen kedua terakhir, elemen terakhir menjadi elemen pertama, dan seterusnya. Ada beberapa metode untuk membalikkan array numpy

Beberapa metode yang paling sering digunakan untuk membalik array numpy adalah sebagai berikut

  • Menggunakan fungsi len()
  • Menggunakan teknik mengiris daftar
  • Menggunakan fungsi flip()
  • Menggunakan fungsi reverse()
  • Menggunakan fungsi flipud()
  • Menggunakan fungsi fliplr()

Siap?

Menggunakan Fungsi len()

Untuk membalikkan daftar, kita dapat menggunakan metode len() yang juga dikenal sebagai pendekatan dua petunjuk. Pengembang yang berasal dari bahasa pemrograman lain dapat menggunakan teknik berikut. Ini adalah pendekatan khusus, bukan pendekatan bawaan. Kami akan mulai dengan menunjuk ke entri pertama pada array NumPy kami. Mulailah dengan variabel indeks yang menunjuk ke nol. Kami sekarang akan melanjutkan ke entri terakhir dari array NumPy kami, indeks akhir, yang akan kami hitung menggunakan metode len(). Akibatnya, fungsionalitas ini bergantung pada keahlian pengguna dan cara mereka membuat kode khusus

Perhatikan contoh berikut

Kode

def reverse(nums):
    start_index = 0
    end_index = len(nums)-1
    while end_index > start_index:
        nums[start_index],nums[end_index] = nums[end_index],nums[start_index]
        start_index = start_index + 1
        end_index = end_index -1

n = [1,2,3,4,5,6,7,8,9,0]
reverse(n)
print(n)

Keluaran

[0, 9, 8, 7, 6, 5, 4, 3, 2, 1]
_

Menggunakan Teknik List Slicing

Mari kita lihat metode lain untuk membalik array satu dimensi menggunakan slicing. Fungsi mengiris merupakan perluasan dari fitur tanda kurung siku. Pemotongan ini memungkinkan kita untuk mendapatkan bit spesifik yang kita butuhkan. Kita tahu sintaks pengiris array adalah "nama array [Mulai, Berhenti, Langkah]". Nilai Mulai dan Hentikan bersifat opsional, dengan nilai default diatur ke 0 untuk Mulai dan panjang larik untuk Berhenti. Jika Anda memasukkan langkah "-1", artinya membalik array dengan memulai dari akhir dan menyelesaikan dari awal

Pertimbangkan skenario berikut

Kode

import numpy as np
arr = np.array([2, 5, 1, 6, 7, 2, 4])
reve_arr = arr[::-1]
print(reve_arr)

Keluaran

Kami membuat array dengan nama arr di kode sebelumnya. Setelah itu, kami menggunakan notasi slicing pada array (arr) untuk mendapatkan hasil dalam urutan terbalik. Seperti yang Anda harapkan dari hasilnya, mengiris tidak merusak daftar asli

Mengiris array NumPy lebih lambat daripada pendekatan di tempat (seperti fungsi reverse(); Ini dijelaskan secara rinci di bagian selanjutnya) karena ini membuat duplikat dangkal dari semua entri dan membutuhkan memori yang cukup untuk menyelesaikan prosedur

Menggunakan fungsi flip()

Sintaks dari numpy. fungsi flip() adalah sebagai berikut

Sintaksis

numpy.flip(arr, axis=None)

Itu terdiri dari beberapa parameter

Sr. Tidak. Parameter NameParameter Description1arrinput array2axisThe default, axis=None, membalik semua sumbu array masukan

Yang numpy. metode flip() di NumPy memungkinkan Anda membalik atau membalikkan isi array di sepanjang sumbu. Saat memanggil numpy. flip(), tunjukkan larik yang akan dibalik serta sumbunya. Jika Anda tidak memberikan sumbu, NumPy akan membalikkan isi larik input Anda di sepanjang sumbunya

Catatan
Karena kita berurusan dengan array multidimensi, membalikkan array dapat dilakukan dengan berbagai cara. Dalam larik 2d, pembalikan dapat dilakukan baik baris maupun kolom

Apa sumbu di input?

Input sumbu digunakan untuk memutuskan apakah pembalikan harus dilakukan secara baris atau kolom. Orientasi sepanjang baris dan kolom diwakili oleh sumbu NumPy, seperti sistem koordinat. Sumbu awal array NumPy adalah sumbu 0. Sumbu 0 ini, yang berjalan vertikal ke bawah melalui deretan array multidimensi NumPy, memungkinkan operasi berdasarkan kolom. Sumbu 1 adalah sumbu kedua dari array NumPy multidimensi. Akibatnya, Axis 1 membentangkan kolom array secara horizontal. Ini menyelesaikan tugas baris demi baris

Dengan ini, kami merasa Anda memiliki pengetahuan yang baik tentang bagaimana sumbu dapat digunakan untuk membalikkan larik multidimensi NumPy

Seperti yang diilustrasikan dalam contoh berikut, pendekatan ini tidak menghancurkan array numpy asli

Kode

import numpy as np
arr = np.array([[1 , 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
reversed_arr = np.flip(arr)
print('Reversed Array: ')
print(reversed_arr)
_

Keluaran

Reversed Array:
[[12 11 10  9]
 [ 8  7  6  5]
 [ 4  3  2  1]]

Menggunakan fungsi reverse()

Fungsi reverse() adalah teknik Python bawaan yang memungkinkan kita untuk segera membalikkan daftar. Fungsi reverse() selalu mengembalikan iterator urutan terbalik. Kerugian terbesar adalah bahwa itu akan berfungsi pada daftar asli, yang berarti akan dibalik

Sintaks fungsi reverse() bawaan adalah sebagai berikut

Sintaksis

Metode sebaliknya tidak menerima argumen

Mari kita lihat contoh bagaimana menggunakan metode reverse() untuk membuat array NumPy terbalik

Kode

import array

arr=array.array('i',[1,2,6,8,4,2])
print(arr)
arr.reverse()
print("Reversed Array:",arr)
_

Keluaran

array('i', [1, 2, 6, 8, 4, 2])
Reversed Array: array('i', [2, 4, 8, 6, 2, 1])

Menggunakan fungsi flipud()

Metode flipud() juga akan membalikkan item array Numpy. Yang numpy. metode flipud() membalik array (elemen di setiap kolom) ke atas dan ke bawah, mempertahankan bentuknya

Sintaks metode flipud() adalah sebagai berikut

Sintaksis

Teknik ini juga dapat digunakan untuk membalik array NumPy, seperti yang terlihat di bawah ini

Kode

import numpy as np

arr= np.array([9, 8, 3, 6, 2, 1])
result = np.flipud(arr)
print("Reverse array",(result))
print("Original array", arr)
_

Keluaran

Reverse array [1 2 6 3 8 9]
Original array [9 8 3 6 2 1]
_

Dalam kode sebelumnya, kami memuat pustaka NumPy dan kemudian menggunakan metode numpy. array() untuk membangun array NumPy. Kami membuat variabel dan menugaskannya dengan metode np. flipud(), yang mengambil array yang kita buat sebelumnya dan menampilkan hasilnya. Array ditampilkan dalam urutan terbalik sebagai hasilnya. Kita juga mencetak larik asli untuk memastikan bahwa larik itu ada atau dihancurkan oleh fungsi flipud(). Namun, kami menemukan bahwa flipud() tidak memengaruhi larik NumPy asli

Menggunakan fungsi fliplr()

Kami dapat dengan cepat membalikkan array menggunakan numpy. metode fliplr(). np. fungsi fliplr() membalik array dari kiri ke kanan. Yang numpy. metode fliplr() selalu mengambil array sebagai argumen dan mengembalikan array yang sama dengan flip kiri-kanan. Dengan asumsi Anda memiliki matriks, terjadi permintaan yang mengharuskan Anda membalik item di setiap baris sambil menjaga kolom tetap utuh. Fungsi ini akan sangat membantu dalam keadaan ini, dan dapat dilakukan hanya dengan satu baris kode. Selanjutnya, kita akan melihat sintaksnya

Sintaksis

Mari kita lihat contoh bagaimana menggunakan metode fliplr() untuk membuat array NumPy terbalik

Kode

[0, 9, 8, 7, 6, 5, 4, 3, 2, 1]
_0

Keluaran

[0, 9, 8, 7, 6, 5, 4, 3, 2, 1]
_1

Contoh sederhana NumPy fliplr ditunjukkan di atas. Pada contoh di atas, pertama-tama kita memuat modul NumPy. Setelah itu, kami mendefinisikan array dua dimensi. Kami mencetak hasil numpy. metode fliplr(), yang memvalidasi input dan fungsi kita. Kita peroleh [23,1], yang merupakan invers dari [1,23][1,23][1,23], dan [6,34][6,34][6,34], yang merupakan invers . Item baris yang identik dibalik di sini sementara bentuk larik dipertahankan. Kami juga mencetak larik asli untuk memastikan bahwa larik tersebut tidak dihancurkan oleh metode fliplr(). Namun, kami perhatikan bahwa fliplr() tidak memengaruhi larik NumPy asli

Kesimpulan

Kami menemukan berbagai metode untuk membalik array NumPy dengan Python. Kami kebanyakan berkonsentrasi pada metode bawaan karena metode kustom bergantung pada kemampuan pengetahuan pengguna. Jika Anda bertanya-tanya apa teknik "optimal" dalam Python untuk membalikkan array NumPy, jawaban saya adalah "tergantung"

Bagaimana Anda membalikkan array?

Algoritma untuk Membalik Larik dengan Pertukaran Di Tempat .
Pertama, masukkan ukuran n dan elemen array a r r arr arr
Tetapkan penunjuk l = 0 l = 0 l=0 pada elemen pertama larik dan penunjuk r = n āˆ’ 1 r = n - 1 r=nāˆ’1 pada elemen terakhir larik
Jalankan while loop while l < r l \lt r l

Apa yang dilakukan reverse () dengan Python?

Metode reverse() membalik urutan pengurutan elemen .