Kode berikut menunjukkan cara menggunakan np. roll() berfungsi untuk menggeser setiap elemen dalam array NumPy dua posisi ke kanan. import numpy as np #create NumPy array data = np.array([1, 2, 3, 4, 5, 6]) #shift each element two positions to the right data_new = np.roll(data, 2) #view new NumPy array data_new array([5, 6, 1, 2, 3, 4]) Perhatikan bahwa setiap elemen digeser dua posisi ke kanan dan elemen di akhir larik dipindahkan begitu saja ke depan Show Kita juga bisa menggunakan angka negatif di np. roll() berfungsi untuk menggeser elemen ke kiri import numpy as np #create NumPy array data = np.array([1, 2, 3, 4, 5, 6]) #shift each element three positions to the left data_new = np.roll(data, -3) #view new NumPy array data_new array([4, 5, 6, 1, 2, 3])_ Metode 2. Pergeseran Elemen (Izinkan Elemen Diganti)Kami juga dapat mendefinisikan fungsi khusus untuk menggeser elemen dalam larik NumPy dan mengizinkan elemen yang digeser untuk diganti dengan nilai tertentu Sebagai contoh, kita dapat mendefinisikan fungsi berikut untuk menggeser elemen dan mengganti elemen yang digeser dengan nilai 0 Dalam posting ini, kita akan belajar bagaimana memutar atau menggeser array ke kanan sebanyak n kali. Rotasi kanan atau pergeseran kanan berarti memindahkan semua elemen array ke arah kanan. Elemen paling kanan bergerak ke awal dan elemen lainnya dipindahkan ke kanan Rotasi kanan atau Pergeseran kanan nomor larikMari kita lihat gambar di bawah ini Di sini, kami memutar array dengan 1 ke kanan. Jadi, setiap elemen digeser 1 ke kanan dan elemen terakhir dipindahkan ke awal Rotasi siklik telah dibahas dalam artikel sebelumnya. Namun terkadang, kami hanya memerlukan tugas tertentu, bagian dari rotasi i. e menggeser elemen terakhir ke elemen pertama dalam daftar. Ini memiliki aplikasi dalam pemrograman sehari-hari di utilitas tertentu. Mari kita bahas cara-cara tertentu untuk mencapai hal ini. Metode #1. Menggunakan pengiris daftar dan operator “+” Kombinasi dari fungsi-fungsi ini dapat digunakan untuk melakukan tugas satu shift dalam daftar. Elemen terakhir ditambahkan ke sisa daftar untuk mencapai tugas ini menggunakan slicing. Python3
The original list is : [1, 4, 5, 6, 7, 8, 9, 12] The list after shift is : [12, 1, 4, 5, 6, 7, 8, 9]0 The original list is : [1, 4, 5, 6, 7, 8, 9, 12] The list after shift is : [12, 1, 4, 5, 6, 7, 8, 9]1 The original list is : [1, 4, 5, 6, 7, 8, 9, 12] The list after shift is : [12, 1, 4, 5, 6, 7, 8, 9]2 The original list is : [1, 4, 5, 6, 7, 8, 9, 12] The list after shift is : [12, 1, 4, 5, 6, 7, 8, 9]3 The original list is : [1, 4, 5, 6, 7, 8, 9, 12] The list after shift is : [12, 1, 4, 5, 6, 7, 8, 9]2 The original list is : [1, 4, 5, 6, 7, 8, 9, 12] The list after shift is : [12, 1, 4, 5, 6, 7, 8, 9]_______________________________________________________________________________________________________________________________________________________________________________________________________________g Pendekatan #1. Lintasi daftar pertama satu per satu dan kemudian letakkan elemen di tempat yang diperlukan dalam daftar kedua. Python3
[4, 5, 6, 1, 2, 3]0 [4, 5, 6, 1, 2, 3]1
[4, 5, 6, 1, 2, 3]3
[4, 5, 6, 1, 2, 3]5 [4, 5, 6, 1, 2, 3]6 [4, 5, 6, 1, 2, 3]7 [4, 5, 6, 1, 2, 3]8 [4, 5, 6, 1, 2, 3]9 [4, 5, 6, 1, 2, 3]0 [4, 5, 6, 1, 2, 3]1 [4, 5, 6, 1, 2, 3]2 [4, 5, 6, 1, 2, 3]3________19______0________19_____5 [4, 5, 6, 1, 2, 3]6 [4, 5, 6, 1, 2, 3]7
[4, 5, 6, 1, 2, 3]_9
[4, 5, 6, 1, 2, 3]1
[4, 5, 6, 1, 2, 3]5 [4, 5, 6, 1, 2, 3]6 [4, 5, 6, 1, 2, 3]7 [4, 5, 6, 1, 2, 3]8 [4, 5, 6, 1, 2, 3]9 [4, 5, 6, 1, 2, 3]8 [4, 5, 6, 1, 2, 3]9 [4, 5, 6, 1, 2, 3]0 [4, 5, 6, 1, 2, 3]1 [4, 5, 6, 1, 2, 3]2 ________32______2 ________132______ [4, 5, 6, 1, 2, 3]6 [4, 5, 6, 1, 2, 3]7
[4, 5, 6, 1, 2, 3]0 # Returns the rotated list 2
[4, 5, 6, 1, 2, 3]0 # Returns the rotated list 5________1333_______6[4, 5, 6, 1, 2, 3]9________1333____________ [4, 5, 6, 1, 2, 3]_________________________________________________________________________________________
________134 The original list is : [1, 4, 5, 6, 7, 8, 9, 12] The list after shift is : [12, 1, 4, 5, 6, 7, 8, 9]_134_______9 Keluaran [4, 5, 6, 1, 2, 3] Kompleksitas waktu. Pada) Pendekatan #2. Pendekatan lain untuk mengatasi masalah ini adalah dengan menggunakan teknik slicing. Salah satu cara mengiris list adalah dengan menggunakan metode len(). Python3
________135 The original list is : [1, 4, 5, 6, 7, 8, 9, 12] The list after shift is : [12, 1, 4, 5, 6, 7, 8, 9]_19_______0 # Returns the rotated list 2
[4, 5, 6, 1, 2, 3]0 # Returns the rotated list 5________1333_______6[4, 5, 6, 1, 2, 3]9________1333____________ [4, 5, 6, 1, 2, 3]_________________________________________________________________________________________
[4, 5, 6, 1, 2, 3]0 output_list 2[4, 5, 6, 1, 2, 3]0 output_list 4[4, 5, 6, 1, 2, 3]2 output_list 6[4, 5, 6, 1, 2, 3]0 output_list 8
[4, 5, 6, 1, 2, 3]00 [4, 5, 6, 1, 2, 3]01 [4, 5, 6, 1, 2, 3]8 [4, 5, 6, 1, 2, 3]03 [4, 5, 6, 1, 2, 3]0 output_list 4[4, 5, 6, 1, 2, 3]2 [4, 5, 6, 1, 2, 3]07
Keluaran [4, 5, 6, 1, 2, 3] Pendekatan #3. Dalam metode di atas, n elemen terakhir dari list_1 diambil dan kemudian elemen list_1 yang tersisa. Cara lain adalah tanpa menggunakan metode len(). Piton[4, 5, 6, 1, 2, 3]_10 ________135 The original list is : [1, 4, 5, 6, 7, 8, 9, 12] The list after shift is : [12, 1, 4, 5, 6, 7, 8, 9]_19_______0 # Returns the rotated list 2
[4, 5, 6, 1, 2, 3]0 # Returns the rotated list 5________1333_______6[4, 5, 6, 1, 2, 3]9________1333____________ [4, 5, 6, 1, 2, 3]_________________________________________________________________________________________ [4, 5, 6, 1, 2, 3]29 [4, 5, 6, 1, 2, 3]30 [4, 5, 6, 1, 2, 3]0 [4, 5, 6, 1, 2, 3]32
[4, 5, 6, 1, 2, 3]0 [4, 5, 6, 1, 2, 3]36 [4, 5, 6, 1, 2, 3]37 [4, 5, 6, 1, 2, 3]38 [4, 5, 6, 1, 2, 3]0 [4, 5, 6, 1, 2, 3]40
[4, 5, 6, 1, 2, 3]0 output_list 2[4, 5, 6, 1, 2, 3]2 [4, 5, 6, 1, 2, 3]45 [4, 5, 6, 1, 2, 3]00 [4, 5, 6, 1, 2, 3]47 [4, 5, 6, 1, 2, 3]2 [4, 5, 6, 1, 2, 3]07
Keluaran [4, 5, 6, 1, 2, 3] Kompleksitas waktu. Pada) Catatan. daftar_1[. ] akan mengembalikan seluruh daftar karena ruang kosong di sebelah kiri operator pengiris mengacu pada awal daftar i. e 0 dan ruang kosong di sebelah kanan mengacu pada posisi akhir daftar. Pendekatan 4. Satu pendekatan tambahan yang dapat digunakan untuk memutar daftar dengan posisi n adalah dengan menggunakan koleksi. modul deque. Modul ini menyediakan daftar tertaut ganda yang mendukung penyisipan dan penghapusan cepat di kedua ujung daftar, serta operasi rotasi cepat Untuk memutar daftar dengan n posisi, Anda dapat menggunakan metode rotate() dari objek deque. Metode ini memutar elemen daftar dengan jumlah posisi yang ditentukan ke kanan. Sebagai contoh Python3[4, 5, 6, 1, 2, 3]52 [4, 5, 6, 1, 2, 3]53 [4, 5, 6, 1, 2, 3]54 [4, 5, 6, 1, 2, 3]55
[4, 5, 6, 1, 2, 3]_56
[4, 5, 6, 1, 2, 3]0 # Returns the rotated list 5________1333_______6[4, 5, 6, 1, 2, 3]9________1333____________ [4, 5, 6, 1, 2, 3]_________________________________________________________________________________________ [4, 5, 6, 1, 2, 3]72 [4, 5, 6, 1, 2, 3]0 [4, 5, 6, 1, 2, 3]74
[4, 5, 6, 1, 2, 3]_75 [4, 5, 6, 1, 2, 3]_76 # Returns the rotated list 2[4, 5, 6, 1, 2, 3]78
[4, 5, 6, 1, 2, 3]_79
[4, 5, 6, 1, 2, 3]0 [4, 5, 6, 1, 2, 3]82 [4, 5, 6, 1, 2, 3]83
[4, 5, 6, 1, 2, 3]85 [4, 5, 6, 1, 2, 3]86 Keluaran [4, 5, 6, 1, 2, 3] Kompleksitas waktu deque. metode rotate() adalah O(n), karena melibatkan pemindahan semua elemen dalam deque dengan sejumlah posisi tertentu. Kompleksitas waktu konstruktor list() dan deque() juga O(n), karena melibatkan iterasi melalui semua elemen dalam daftar input atau deque dan membuat daftar baru atau deque dengan elemen tersebut Kompleksitas ruang bantu kode juga O(n), karena melibatkan pembuatan deque baru dan daftar baru, keduanya memiliki ukuran yang sama dengan daftar input Bagaimana Anda menggeser nilai dalam array dengan Python?Untuk menggeser bit elemen array dari array 2D ke kiri, gunakan numpy. left_shift() dengan Python Numpy. Bit digeser ke kiri dengan menambahkan x2 0s di sebelah kanan x1. Karena representasi internal angka dalam format biner, operasi ini setara dengan mengalikan x1 dengan 2**x2.
Bagaimana Anda menggeser elemen yang tepat dalam array?Larik dapat diputar ke kanan dengan menggeser elemennya ke posisi di sebelahnya yang dapat dilakukan dengan memutar balik larik dalam urutan terbalik (perulangan akan dimulai dari panjang . .
Bagaimana Anda menggeser elemen dengan Python?Menggeser elemen ke Kiri. Menggunakan metode pop() dengan Python, kita menghapus elemen pertama dari daftar L. Kemudian, metode append menambahkan nilai dalam variabel g ke daftar L. Karenanya semua elemen digeser ke kiri ke indeks sebelumnya.
Bagaimana Anda memutar kanan dengan Python?Langkah 1. Masukkan string. Langkah 2. Pisahkan string menjadi dua bagian pertama & kedua, untuk rotasi kiri Lpertama = str[0. d] dan Ldetik = str[d. ]. Untuk Rotasi Kanan Rfirst = str[0. len(str)-d] dan Rdetik = str[len(str)-d. ] . Langkah 3. Sekarang gabungkan kedua bagian ini kedua + pertama sesuai dengan itu. |