Cách xoay dữ liệu trong python

Giả sử chúng ta có một mảng A. Ta phải xoay phải nó k bước. Vì vậy, nếu mảng là A = [5, 7, 3, 6, 8, 1, 5, 4] và k = 3, thì đầu ra sẽ là [1,5,4,5,7,3,6, . Các bước giống như

Show
  • [4,5,7,3,6,8,1,5]
  • [5,4,5,7,3,6,8,1]
  • [1,5,4,5,7,3,6,8]

Để giải quyết vấn đề này, chúng ta sẽ làm theo các bước sau

  • đặt n là kích thước của mảng
  • k = k mod n
  • A = mảng con của A từ n – k đến hết + mảng con của A từ 0 đến n – k – 1

Chúng ta hãy xem triển khai sau đây để hiểu rõ hơn -

Ví dụ

Bản thử trực tiếp

class Solution(object):
   def rotate(self, nums, k):
      """
      :type nums: List[int]
      :type k: int
      :rtype: None Do not return anything, modify nums in-place instead.
      """
      n = len(nums)
      k%=n
      nums[:] = nums[n-k:]+nums[:n-k]
nums = [5,7,3,6,8,1,5,4]
ob1 = Solution()
ob1.rotate(nums, 3)
print(nums)

Đầu vào

nums = [5,7,3,6,8,1,5,4]
k = 3

đầu ra

[1,5,4,5,7,3,6,8]

Cách xoay dữ liệu trong python


Cách xoay dữ liệu trong python

Trong chương trình này, chúng ta cần xoay các phần tử của một mảng về bên trái theo số lần đã chỉ định. Trong phép quay trái, mỗi phần tử của mảng sẽ dịch chuyển sang trái một vị trí và phần tử đầu tiên của mảng sẽ được thêm vào cuối danh sách. Quá trình này sẽ được thực hiện trong một số lần xác định

Cách xoay dữ liệu trong python

Xét mảng trên, nếu n bằng 1 thì tất cả các phần tử của mảng sẽ dịch chuyển sang trái một vị trí sao cho phần tử thứ 2 của mảng sẽ chiếm vị trí thứ nhất, phần tử thứ 3 sẽ dịch chuyển sang vị trí thứ 2, v.v. Phần tử đầu tiên của mảng sẽ được thêm vào phần tử cuối cùng của mảng

Mảng được xoay trong mặt phẳng được xác định bởi hai trục được cung cấp bởi tham số axis sử dụng phép nội suy spline của thứ tự được yêu cầu

Thông số đầu vào array_like

mảng đầu vào

góc phao

Góc quay tính bằng độ

trục bộ gồm 2 số nguyên, tùy chọn

Hai trục xác định mặt phẳng quay. Mặc định là hai trục đầu tiên

định hình lại bool, tùy chọn

Nếu định hình lại là đúng, hình dạng đầu ra được điều chỉnh sao cho mảng đầu vào được chứa hoàn toàn trong đầu ra. Mặc định là Đúng

đầu ra mảng hoặc dtype, tùy chọn

Mảng để đặt đầu ra hoặc dtype của mảng được trả về. Theo mặc định, một mảng có cùng loại với đầu vào sẽ được tạo

thứ tự int, tùy chọn

Thứ tự nội suy spline, mặc định là 3. Thứ tự phải nằm trong khoảng 0-5

mode {'reflect', 'grid-mirror', 'constant', 'grid-constant', 'gần nhất', 'mirror', 'grid-wrap',

Tham số chế độ xác định cách mảng đầu vào được mở rộng ra ngoài ranh giới của nó. Mặc định là 'không đổi'. Hành vi cho từng giá trị hợp lệ như sau (xem các sơ đồ bổ sung và chi tiết trên)

'phản ánh' (d c b a. A B C D. đ c b a)

Đầu vào được mở rộng bằng cách phản ánh về cạnh của pixel cuối cùng. Chế độ này đôi khi còn được gọi là đối xứng nửa mẫu

'gương lưới'

Đây là một từ đồng nghĩa với 'phản ánh'

'không đổi' (k k k k. A B C D. k k k k)

Đầu vào được mở rộng bằng cách điền tất cả các giá trị ngoài cạnh với cùng một giá trị không đổi, được xác định bởi tham số cval. Không có phép nội suy nào được thực hiện ngoài các cạnh của đầu vào

'hằng số lưới' (k k k k. A B C D. k k k k)

Đầu vào được mở rộng bằng cách điền tất cả các giá trị ngoài cạnh với cùng một giá trị không đổi, được xác định bởi tham số cval. Nội suy cũng xảy ra đối với các mẫu nằm ngoài phạm vi của đầu vào

'gần nhất' (a a a a. A B C D. d d d d)

Đầu vào được mở rộng bằng cách sao chép pixel cuối cùng

‘tấm gương’ (d c b. A B C D. c b a)

Đầu vào được mở rộng bằng cách phản ánh về trung tâm của pixel cuối cùng. Chế độ này đôi khi cũng được gọi là đối xứng toàn bộ mẫu

'quấn lưới' (a b c d. A B C D. A B C D)

Đầu vào được mở rộng bằng cách quấn quanh cạnh đối diện

'quấn' (d b c d. A B C D. b c a b)

Đầu vào được mở rộng bằng cách bao quanh cạnh đối diện, nhưng theo cách sao cho điểm cuối cùng và điểm đầu trùng khớp chính xác. Trong trường hợp này, không xác định rõ mẫu nào sẽ được chọn tại điểm chồng lấp

cval vô hướng, tùy chọn

Giá trị để lấp đầy các cạnh đầu vào trong quá khứ nếu chế độ là 'không đổi'. Mặc định là 0. 0

bộ lọc trước bool, tùy chọn

Xác định xem mảng đầu vào có được lọc trước trước khi nội suy hay không. Giá trị mặc định là True, sẽ tạo một mảng float64 tạm thời gồm các giá trị được lọc nếu thứ tự > 1. Nếu đặt giá trị này thành Sai, đầu ra sẽ hơi mờ nếu thứ tự > 1, trừ khi đầu vào được lọc trước, tôi. e. đó là kết quả của việc gọi đầu vào ban đầu