Hướng dẫn double colon in python slicing - dấu hai chấm kép trong cách thái thịt trăn

TL;DR

Ví dụ trực quan này sẽ chỉ cho bạn cách chọn các yếu tố được chọn gọn gàng trong một ma trận numpy (mảng 2 chiều) theo cách khá thú vị (tôi hứa). Bước 2 bên dưới minh họa việc sử dụng "dấu hai bên"

In [5]: X2 = X[2:9,3:8]

In [6]: X2
Out[6]:
array([[23, 24, 25, 26, 27],
       [33, 34, 35, 36, 37],
       [43, 44, 45, 46, 47],
       [53, 54, 55, 56, 57],
       [63, 64, 65, 66, 67],
       [73, 74, 75, 76, 77],
       [83, 84, 85, 86, 87]])
7 trong câu hỏi.Step 2 below illustrate the usage of that "double colons"
In [5]: X2 = X[2:9,3:8]

In [6]: X2
Out[6]:
array([[23, 24, 25, 26, 27],
       [33, 34, 35, 36, 37],
       [43, 44, 45, 46, 47],
       [53, 54, 55, 56, 57],
       [63, 64, 65, 66, 67],
       [73, 74, 75, 76, 77],
       [83, 84, 85, 86, 87]])
7 in question.

.

Một ví dụ cụ thể để cai trị tất cả ...

Giả sử chúng ta có một ma trận numpy trông như thế này:

In [1]: import numpy as np

In [2]: X = np.arange(100).reshape(10,10)

In [3]: X
Out[3]:
array([[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
       [20, 21, 22, 23, 24, 25, 26, 27, 28, 29],
       [30, 31, 32, 33, 34, 35, 36, 37, 38, 39],
       [40, 41, 42, 43, 44, 45, 46, 47, 48, 49],
       [50, 51, 52, 53, 54, 55, 56, 57, 58, 59],
       [60, 61, 62, 63, 64, 65, 66, 67, 68, 69],
       [70, 71, 72, 73, 74, 75, 76, 77, 78, 79],
       [80, 81, 82, 83, 84, 85, 86, 87, 88, 89],
       [90, 91, 92, 93, 94, 95, 96, 97, 98, 99]])

Nói vì một số lý do, sếp của bạn muốn bạn chọn các yếu tố sau:

Hướng dẫn double colon in python slicing - dấu hai chấm kép trong cách thái thịt trăn

"Nhưng làm thế nào ???" ... Đọc tiếp! (Chúng ta có thể làm điều này theo cách tiếp cận 2 bước)

Bước 1 - Lấy tập hợp con

Chỉ định "chỉ mục bắt đầu" và "chỉ mục kết thúc" theo cả hai hướng theo hàng và thông minh cột.

Hướng dẫn double colon in python slicing - dấu hai chấm kép trong cách thái thịt trăn

Trong mã:

In [5]: X2 = X[2:9,3:8]

In [6]: X2
Out[6]:
array([[23, 24, 25, 26, 27],
       [33, 34, 35, 36, 37],
       [43, 44, 45, 46, 47],
       [53, 54, 55, 56, 57],
       [63, 64, 65, 66, 67],
       [73, 74, 75, 76, 77],
       [83, 84, 85, 86, 87]])

Thông báo bây giờ chúng tôi vừa có được tập hợp con của chúng tôi, với việc sử dụng kỹ thuật lập chỉ mục bắt đầu và kết thúc đơn giản. Tiếp theo, làm thế nào để làm điều đó "Nhảy" ... (Đọc tiếp!)

Bước 2 - Chọn các phần tử (với đối số "Bước nhảy")

Bây giờ chúng ta có thể chỉ định các "bước nhảy" theo cả hai hướng thông minh và thông minh cột (để chọn các phần tử theo cách "nhảy") như thế này:

Hướng dẫn double colon in python slicing - dấu hai chấm kép trong cách thái thịt trăn

Trong mã (lưu ý các dấu hai bên):

In [7]: X3 = X2[::3, ::2]

In [8]: X3
Out[8]:
array([[23, 25, 27],
       [53, 55, 57],
       [83, 85, 87]])

Chúng tôi vừa chọn tất cả các yếu tố theo yêu cầu! :)

& nbsp; củng cố bước 1 (bắt đầu và kết thúc) và bước 2 ("Nhảy")

Bây giờ chúng ta biết khái niệm này, chúng ta có thể dễ dàng kết hợp Bước 1 và Bước 2 thành một bước hợp nhất - cho sự nhỏ gọn:

In [9]: X4 = X[2:9,3:8][::3,::2]

    In [10]: X4
    Out[10]:
    array([[23, 25, 27],
           [53, 55, 57],
           [83, 85, 87]])

Done!

Một đại tràng (:) giữ rất nhiều tầm quan trọng trong Python. Một dấu hai chấm trong Python được sử dụng cho nhiều chức năng bao gồm khai báo các chức năng, tìm nạp dữ liệu, lập chỉ mục mảng và hơn thế nữa. Hãy để thảo luận về các chức năng và việc sử dụng các đại kết chi tiết hơn dưới đây.


Chức năng của đại tràng (:)

  • Một đại tràng được sử dụng để đại diện cho một khối thụt lề.
  • Nó cũng được sử dụng để tìm nạp dữ liệu và phạm vi chỉ mục hoặc mảng
  • Một cách sử dụng chính của đại tràng là cắt lát. Trong việc cắt, lập trình viên chỉ định chỉ số bắt đầu và chỉ số kết thúc và tách chúng bằng dấu hai chấm là cú pháp chung của việc cắt.slicing. In slicing, the programmer specifies the starting index and the ending index and separates them using a colon which is the general syntax of slicing.
  • Một đại tràng được sử dụng để xác định các khóa trong từ điển.

Có nhiều cách sử dụng đại tràng hơn trong Python và chúng tôi thực tế sẽ sử dụng các chức năng dưới đây.


Các loại dấu chấm trong Python

  • Đại tràng (:)
  • Double Colon (: :)

Sử dụng đại tràng trong Python để thụt vào

Như bạn sẽ thấy trong ví dụ dưới đây, thời điểm bạn sử dụng dấu hai chấm trên một dòng, dòng tiếp theo được tự động thụt vào.

>>> a = 20
>>> if a > 10:
         print("20 is greater than 10")
    else:
         print("20 is less than 10")

Output
20 is greater than 10


Sử dụng ruột kết (:) trong chuỗi để cắt

Các chức năng của toán tử đại tràng trong việc cắt bao gồm lập chỉ mục một phạm vi cụ thể và hiển thị đầu ra bằng toán tử đại tràng.

>>> a = "AskPython"
>>> print(a[2:8])
kPytho

Một dấu hai chấm được sử dụng ở phía bên phải của chỉ mục sẽ hiển thị mọi thứ sau chỉ mục cụ thể đó dưới dạng đầu ra. Điều này sẽ không hiển thị chỉ mục được đề cập trong mã.right side of the index will display the everything after that particular index as an output. This will not display the index that is mentioned in the code.

>>> a = "AskPython"
>>> print(a[3:])
Python

Một dấu hai chấm được sử dụng ở phía bên trái của chỉ mục sẽ hiển thị mọi thứ trước chỉ mục cụ thể dưới dạng đầu ra. Điều này sẽ hiển thị chỉ mục được đề cập trong mã quá.left side of the index will display everything before the particular index as an output. This will display that index mentioned in the code too.

>>> a = "AskPython"
>>> print(a[:7])
AskPyth

Lập chỉ mục âm: Cắt chỉ số sẽ xảy ra từ cuối chuỗi bằng toán tử đại tràng.Slicing of index will happen from the end of the string using the colon operator.

>>> a = "AskPython"
>>> print(a[-5:-2])
yth


Sử dụng Đại tràng (:) để truy cập các yếu tố danh sách cụ thể

Truy cập các yếu tố cụ thể từ danh sách hoạt động theo cách tương tự như chúng tôi đã quan sát trong việc cắt chuỗi ở trên. Một tập hợp các từ hoặc phần tử cụ thể sẽ được hiển thị với sự trợ giúp của phạm vi chỉ mục và toán tử đại tràng. Nhìn vào các ví dụ sau để hiểu rõ hơn:

>>> list = ["Python","C","Java","Mysql","PHP","Ruby","HTML"]
>>> print(list[2:6])
['Java','Mysql','PHP','Ruby']

In [5]: X2 = X[2:9,3:8]

In [6]: X2
Out[6]:
array([[23, 24, 25, 26, 27],
       [33, 34, 35, 36, 37],
       [43, 44, 45, 46, 47],
       [53, 54, 55, 56, 57],
       [63, 64, 65, 66, 67],
       [73, 74, 75, 76, 77],
       [83, 84, 85, 86, 87]])
0

In [5]: X2 = X[2:9,3:8]

In [6]: X2
Out[6]:
array([[23, 24, 25, 26, 27],
       [33, 34, 35, 36, 37],
       [43, 44, 45, 46, 47],
       [53, 54, 55, 56, 57],
       [63, 64, 65, 66, 67],
       [73, 74, 75, 76, 77],
       [83, 84, 85, 86, 87]])
1

Một toán tử đại tràng cũng có thể được sử dụng để thay thế các yếu tố nhất định trong danh sách bằng các yếu tố hiện có.

In [5]: X2 = X[2:9,3:8]

In [6]: X2
Out[6]:
array([[23, 24, 25, 26, 27],
       [33, 34, 35, 36, 37],
       [43, 44, 45, 46, 47],
       [53, 54, 55, 56, 57],
       [63, 64, 65, 66, 67],
       [73, 74, 75, 76, 77],
       [83, 84, 85, 86, 87]])
2


Sử dụng các dấu chấm để xác định các khóa trong từ điển

Từ điển được hiển thị trong khóa: Định dạng giá trị.key : value format.

In [5]: X2 = X[2:9,3:8]

In [6]: X2
Out[6]:
array([[23, 24, 25, 26, 27],
       [33, 34, 35, 36, 37],
       [43, 44, 45, 46, 47],
       [53, 54, 55, 56, 57],
       [63, 64, 65, 66, 67],
       [73, 74, 75, 76, 77],
       [83, 84, 85, 86, 87]])
3


Double Colons (: :) trong Python

Các dấu chấm hai (: :) trong Python được sử dụng để nhảy các phần tử trong nhiều trục. Nó cũng là một toán tử lát cắt. Mỗi mục của chuỗi được cắt bằng cách sử dụng hai dấu hai chấm.

Lấy ví dụ một chuỗi ‘Hỏi Python, và chúng tôi sẽ cố gắng điều khiển nó bằng cách sử dụng toán tử lát cắt để hiểu rõ hơn. Sau khi khởi tạo biến với chỉ định số chỉ mục trong cùng một cột và sử dụng ::

In [5]: X2 = X[2:9,3:8]

In [6]: X2
Out[6]:
array([[23, 24, 25, 26, 27],
       [33, 34, 35, 36, 37],
       [43, 44, 45, 46, 47],
       [53, 54, 55, 56, 57],
       [63, 64, 65, 66, 67],
       [73, 74, 75, 76, 77],
       [83, 84, 85, 86, 87]])
4

Những dấu hai bên này được sử dụng để tách các giá trị của các cờ với nhau. Khi lập trình viên không chỉ định các giá trị của các cờ, trình thông dịch sẽ sử dụng các giá trị mặc định của nó.

Cú pháp của một toán tử lát sử dụng dấu hai chấm là [Bắt đầu: Dừng: Bước]. Bắt đầu (chỉ ra số từ nơi cắt sẽ bắt đầu), dừng (cho biết số trong đó việc cắt sẽ dừng) và các bước (cho biết số lượng người thông báo sẽ thực hiện để cắt chuỗi) là ba cờ và tất cả các cờ này là số nguyên giá trị.[Start : Stop : Steps]. Start (Indicates the number from where the slicing will start), Stop(Indicates the number where the slicing will stop) and Steps(Indicates the number of jumps interpreter will take to slice the string) are the three flags and all these flags are integer values.

In [5]: X2 = X[2:9,3:8]

In [6]: X2
Out[6]:
array([[23, 24, 25, 26, 27],
       [33, 34, 35, 36, 37],
       [43, 44, 45, 46, 47],
       [53, 54, 55, 56, 57],
       [63, 64, 65, 66, 67],
       [73, 74, 75, 76, 77],
       [83, 84, 85, 86, 87]])
5

Trong mã trên, trình thông dịch sau khi thực thi được in từng ký tự thứ hai bắt đầu từ INDEX 0 đến INDEX 19. Mã này có thể được giảm xuống một đoạn cắt ngắn bằng cách sử dụng toán tử Double Colon ::.

In [5]: X2 = X[2:9,3:8]

In [6]: X2
Out[6]:
array([[23, 24, 25, 26, 27],
       [33, 34, 35, 36, 37],
       [43, 44, 45, 46, 47],
       [53, 54, 55, 56, 57],
       [63, 64, 65, 66, 67],
       [73, 74, 75, 76, 77],
       [83, 84, 85, 86, 87]])
6

Toán tử :: được sử dụng trước số chỉ mục sẽ tạo ra cùng một đầu ra.

Sự kết luận

Mặc dù chủ đề này khá nhỏ, nhưng hiểu được việc sử dụng dấu hai chấm trong Python có thể giúp bạn dễ dàng thông qua việc học từ điển, chức năng, v.v.

Hãy theo dõi các hướng dẫn thêm!

Điều gì :: có nghĩa là trong cắt lát?

Một cách để làm điều này là sử dụng toán tử cắt đơn giản, tức là dấu hai chấm (:) với toán tử này, người ta có thể chỉ định nơi bắt đầu cắt lát, nơi kết thúc và chỉ định bước. Danh sách cắt giảm trả về một danh sách mới từ danh sách hiện có.specify where to start the slicing, where to end, and specify the step. List slicing returns a new list from the existing list.

Làm gì :: trong Python có nghĩa là?

Trong Python, [::-1] có nghĩa là đảo ngược một chuỗi, danh sách hoặc bất kỳ điều gì có thể lặp lại với một đơn đặt hàng.Ví dụ: Hello = "Hello World"

Làm thế nào để bạn cắt một ruột ở Python?

Cú pháp cơ bản cho một lát là dấu ngoặc vuông với các dấu chấm và số nguyên bên trong "[0: 1: 2]".Người vận hành lát cắt có các đối số tùy chọn nếu bạn quyết định để mọi thứ trống.Nó sẽ tự động bắt đầu tại Index 0, dừng ở cuối và bước 1 trừ khi bạn khai báo khác.square brackets with colons and integers inside "[0:1:2]". The slice operator has optional arguments for if you decide to leave things blank. It will automatically start at index 0, stop at the end and step by 1 unless you declare otherwise.

[:: 3 có nghĩa là gì trong Python?

Với kiến thức này, [:: 3] Chỉ có nghĩa là bạn chưa chỉ định bất kỳ chỉ số bắt đầu hoặc kết thúc nào cho lát cắt của bạn.Vì bạn đã chỉ định một bước, 3, điều này sẽ thực hiện mọi mục nhập thứ ba của một cái gì đó bắt đầu từ chỉ mục đầu tiên.Ví dụ: >>> '123123123' [:: 3] '111'you have not specified any start or end indices for your slice. Since you have specified a step, 3 , this will take every third entry of something starting at the first index. For example: >>> '123123123'[::3] '111'