Vì vậy, nếu chúng tôi sửa đổi mảng ban đầu, chế độ xem cũng được sửa đổi. Tương tự, nếu chúng ta sửa đổi khung nhìn, mảng ban đầu cũng được sửa đổi
ví dụ 1. Sửa đổi slice1 cũng sẽ sửa đổi mảng ban đầu
print [two_d[[1,2]]]
#Output: 5
print [two_d[1,2]]
#Output: 5
9two_d=np.array[[[0,1],[2,3],[4,5]]]
print [two_d]
#Output:
[[0 1]
[2 3]
[4 5]]
6ví dụ 2. Sửa đổi mảng ban đầu cũng sẽ sửa đổi mảng được tạo bằng cách cắt cơ bản
two_d=np.array[[[0,1],[2,3],[4,5]]]
print [two_d]
#Output:
[[0 1]
[2 3]
[4 5]]
7Ghi chú. Cắt lát
x[i,j]
or
x[[i,j]]
6 tạo ra một dạng xem thay vì một bản sao như trong trường hợp các chuỗi Python dựng sẵn như chuỗi, bộ dữ liệu và danh sách. Phải cẩn thận khi trích xuất một phần nhỏ từ một mảng lớn, phần này trở nên vô dụng sau khi trích xuất vì phần nhỏ được trích xuất chứa tham chiếu đến mảng ban đầu lớn hơn mà bộ nhớ của nó sẽ không được giải phóng cho đến khi tất cả các mảng bắt nguồn từ nó được thu gom rác. Trong những trường hợp như vậy, nên sử dụng một print [two_d[[1]]]
#Output:[3 4 5]
1 rõ ràng. -Tài liệu Pythonví dụ 3. Chỉ mục bắt đầu và dừng bị bỏ qua mặc định là chỉ mục đầu tiên và chỉ mục cuối cùng của mảng. Bước âm biểu thị hướng ngược lại
two_d=np.array[[[0,1],[2,3],[4,5]]]
print [two_d]
#Output:
[[0 1]
[2 3]
[4 5]]
8Hình ảnh của tác giả
2. Cắt mảng hai chiều
Bằng cách cắt một mảng hai chiều ở cả hai trục, chúng ta có thể nhận được một tập hợp con của mảng ban đầu
print [two_d[[1]]]
#Output:[3 4 5]
2tôi. j. k → Cắt dọc theo trục x [hàng]
l. m. n → lát dọc theo trục y[cột]
Ví dụ 1.
______43 →Chọn các phần tử từ hàng 1 đến hàng cuối cùng và cột 1 đến cột cuối cùng.
two_d=np.array[[[0,1],[2,3],[4,5]]]
print [two_d]
#Output:
[[0 1]
[2 3]
[4 5]]
9Ví dụ 2.
______44 → Chọn các phần tử từ hàng 0 đến hàng 2[không bao gồm] và cột 1 cho đến cột cuối cùng.
0. 2 → Lát cho trục x → chọn hàng 0 cho đến hàng 2 [không bao gồm]
1. → Cắt theo trục y → chọn cột 1 cho đến cột cuối cùng
Hình ảnh của Tác giả
x[i,j]
or
x[[i,j]]
0Ví dụ 3.
______45
print [two_d[[1]]]
#Output:[3 4 5]
6 →Chọn hàng 1 cho đến hàng cuối cùngprint [two_d[[1]]]
#Output:[3 4 5]
7 → Chọn các cột từ cột 1 đến cột cuối cùng ở bước 2Hình ảnh của Tác giả
x[i,j]
or
x[[i,j]]
13. Cắt mảng ba chiều
Bằng cách cắt mảng ba chiều dọc theo ba trục, chúng ta có thể chọn một tập hợp con của mảng ban đầu
print [two_d[[1]]]
#Output:[3 4 5]
8a. b. c →Cắt mặt phẳng
i. j. k → Cắt các hàng
l. m. n → Cắt các cột
Ví dụ 1.
______49
. → Chọn tất cả các mặt phẳng
. → Chọn tất cả các hàng
1. → Chọn các cột từ cột 1 đến cột cuối cùng
Hình ảnh của Tác giả
x[i,j]
or
x[[i,j]]
2Chỉ mục ngoài phạm vi
Các chỉ mục nằm ngoài phạm vi được xử lý một cách duyên dáng bằng cách cắt
x[i,j]
or
x[[i,j]]
3Lập chỉ mục nâng cao
Lập chỉ mục mảng số nguyên
Lập chỉ mục mảng số nguyên cho phép lựa chọn các mục tùy ý trong mảng dựa trên chỉ mục N chiều của chúng. Mỗi mảng số nguyên đại diện cho một số chỉ mục vào thứ nguyên đó- Tài liệu Python
ví dụ 1. mảng hai chiều
two_d=np.array[[[0,1],[2,3],[4,5]]]
print [two_d]
#Output:
[[0 1]
[2 3]
[4 5]]
90Hình ảnh của tác giả
Đối với mỗi hàng, một phần tử cụ thể sẽ được chọn.
row_index → [0,1,2] → chỉ mục hàng chỉ định hàng sẽ được chọn
column_index →[0,1,2] → chỉ mục cột chỉ định phần tử
x[i,j]
or
x[[i,j]]
4ví dụ 2. mảng ba chiều
two_d=np.array[[[0,1],[2,3],[4,5]]]
print [two_d]
#Output:
[[0 1]
[2 3]
[4 5]]
91Kết quả sẽ là nó sẽ chọn các phần tử từ [ mặt phẳng 0,hàng 0,cột 0] và [mặt phẳng 1,hàng1,cột 1].
Hình ảnh của Tác giả
x[i,j]
or
x[[i,j]]
5Liên kết Github
Mã được sử dụng ở đây có sẵn dưới dạng Jupyter Notebook trên Github
Phần kết luận- Trong lập chỉ mục cơ bản, các chỉ mục nằm ngoài phạm vi sẽ tăng IndexError
- Trong cắt lát cơ bản, các chỉ mục nằm ngoài phạm vi được xử lý một cách duyên dáng
- Tất cả các mảng được tạo bằng cách cắt cơ bản là dạng xem của mảng ban đầu
- Trong lập chỉ mục cơ bản, x[i,j,k] tương đương với x[[i,j,k]]
- Trong thao tác cắt lát cơ bản, chúng ta không nên sử dụng một bộ đối tượng lát cắt.
a[1. ,1. ] → đúng
a[[1. ,1. ]] → sai - Lát cắt đầy đủ sẽ chọn toàn bộ mặt phẳng/hàng/cột dựa trên các trục được đề cập.
a[. ] → Nó sẽ chọn tất cả các hàng trong mảng một chiều
a[1,. ] →Nó sẽ chọn tất cả các cột trong hàng 1 trong một mảng hai chiều
a[. ,1,1] →Nó sẽ chọn hàng 1 và cột 1 trong tất cả các mặt phẳng trong mảng ba chiều - Đối với chỉ mục theo sau, chỉ mục bị bỏ qua đại diện cho một phần đầy đủ
a[1] giống như a[1,. ] trong mảng hai chiều
a[1,1] giống như a[1,1,. ] trong mảng ba chiều
Tài nguyên [Tài liệu Python]
Lập chỉ mục và cắt lát
lượt xem
Xem không gian này để biết thêm các bài viết về Python và Khoa học dữ liệu. Nếu bạn muốn đọc thêm các hướng dẫn của tôi, hãy theo dõi tôi trên Medium, LinkedIn, Twitter