Nối mảng 2D Python

Cắt mảng sần sùi giống như gọt trái cây. Bạn cắt đi một phần và giữ phần còn lại. — Ninja mập mạp —

Sau khi đọc bài đăng này, bạn sẽ có thể cắt qua các mảng như cắt bơ. Tôi sẽ bắt đầu bằng cách giải thích cách chọn một phần tử từ một mảng có nhiều mảng. Sau đây mình sẽ hướng dẫn các bạn cách slice mảng 1 chiều. Tôi sẽ xây dựng nhiều kích thước hơn, cho đến khi bạn có thể cắt các mảng với bất kỳ số lượng kích thước nào. Ở phần cuối của bài viết, tôi muốn cho bạn thấy rằng việc trộn các chỉ mục đơn lẻ và cắt lát sẽ làm giảm số lượng kích thước của kết quả cắt

Chọn một yếu tố duy nhất

mảng một chiều

Các chỉ mục của một mảng numpy một chiều bắt đầu từ 0. Điều này có nghĩa là phần tử đầu tiên sẽ có chỉ số 0. Phần tử thứ hai sẽ có chỉ số 1, phần tử thứ ba có chỉ số 2, v.v.

(Ảnh của tác giả)

Giả sử, tôi muốn in số 7 (là phần tử thứ hai). Tôi lấy nó bằng cách lập chỉ mục mảng “arr” với số 1 trong ngoặc vuông

mảng hai chiều

Để lấy một phần tử từ mảng 2 chiều, tôi phải cung cấp hai chỉ mục

(Ảnh của tác giả)

Chỉ mục đầu tiên luôn dọc theo trục được bao quanh bởi số lượng dấu ngoặc nhỏ nhất

Ví dụ, để lấy số 5 từ mảng này, bạn sẽ phải lập chỉ mục mảng với chỉ mục đầu tiên và sau đó là chỉ mục thứ hai

(Ảnh của tác giả)

Nếu nghĩ về mảng 2D được tổ chức theo cột, bạn có thể nghĩ đến chỉ mục đầu tiên chọn hàng và chỉ mục thứ hai chọn cột

(Ảnh của tác giả)

Mảng ba chiều trở lên

Đối với mảng ba chiều trở lên, bạn phải cung cấp một chỉ mục cho mỗi chiều

(Ảnh của tác giả)

Chỉ mục đầu tiên luôn chọn phần tử bên trong dấu ngoặc vuông bên ngoài nhất. Theo logic này, bạn có thể tìm ra thứ tự của các chỉ mục trong bất kỳ mảng tùy ý nào

Giả sử tôi muốn lấy số 10 từ mảng này. Trong suy nghĩ, hãy bắt đầu với toàn bộ mảng và chọn phần chứa số bạn muốn, bỏ phần còn lại

(Ảnh của tác giả)

Vì vậy, để in số 10 trong mảng này, tôi sẽ sử dụng các chỉ số 1,2,0

(Ảnh của tác giả)

Đếm ngược với chỉ số âm

Bạn có thể cung cấp các Chỉ mục âm để đếm ngược trong mảng. Chỉ số của chỉ số cuối cùng là -1, chỉ số của phần tử cuối cùng thứ hai là -2, v.v.

một chiều

(Ảnh của tác giả)

hai chiều

(Ảnh của tác giả)

ba chiều

(Ảnh của tác giả)

Kết hợp các chỉ số tích cực và tiêu cực

Bạn luôn có thể kết hợp các chỉ số dương và âm để chọn một phần tử trong một mảng. Ví dụ: nếu tôi muốn in số 5 từ mảng sau, tôi có thể lập chỉ mục cho nó với -2 làm chỉ mục đầu tiên và 2 làm chỉ mục thứ hai

(Ảnh của tác giả)Chọn một phần của mảng (= cắt lát)

Để chỉ chọn một phần của một mảng được gọi là cắt

mảng một chiều

(Ảnh của tác giả)

Để cắt mảng một chiều, tôi cung cấp số bắt đầu và số kết thúc được phân tách bằng dấu chấm phẩy (. ). Phạm vi sau đó bắt đầu ở số bắt đầu và một trước số kết thúc

(Ảnh của tác giả)

Khi tôi muốn lấy toàn bộ mảng từ đầu cho đến phần tử có chỉ số 3, tôi có thể viết. in (mảng [0. 4]). Tuy nhiên điều này cũng giống như

(Ảnh của tác giả)

Tương tự như vậy, để đi từ chỉ số 1 đến hết mảng, tôi có thể viết nó mà không cung cấp phần kết thúc cắt

(Ảnh của tác giả)

Để in toàn bộ mảng, tôi chỉ lập chỉ mục bằng dấu hai chấm

(Ảnh của tác giả)

Đối với mảng 1 chiều, việc in toàn bộ mảng theo cách này sẽ không hợp lý, mà là in mảng trực tiếp bằng cách sử dụng. in (mảng). Tuy nhiên, khi bạn cắt một mảng, nó sẽ được sao chép. Đây không phải là trường hợp khi bạn sử dụng mảng ban đầu mà không cắt. Đối với một ứng dụng như in ấn, sự khác biệt này không thành vấn đề, nhưng đối với các trường hợp khác, khi một mảng bị sửa đổi, điều đó có thể quan trọng

mảng hai chiều

Khi tôi cắt một mảng 2D, tôi tưởng tượng rằng kết quả là giao điểm giữa các hàng đã chọn (chỉ mục đầu tiên) và các cột (chỉ mục thứ hai)

(Ảnh của tác giả)

Khi tôi chỉ cung cấp chỉ mục đầu tiên cho mảng 2D, nó sẽ trả lại cho tôi toàn bộ hàng. Ví dụ in(arr[1,. ]) sẽ giống như print(arr[1])

(Ảnh của tác giả)

Mảng ba chiều trở lên

Cắt cho mảng ba chiều trở lên tuân theo logic giống như đối với mảng 2D, nhưng tôi không thể hình dung nó theo hàng và cột

(Ảnh của tác giả)

Tôi nghĩ đến việc cắt các mảng 3D hoặc nhiều chiều hơn theo cách sau. Tôi bắt đầu ở hầu hết các dấu ngoặc ngoài và chọn từ đầu đến cuối theo các chỉ mục đầu tiên. Sau đó, tôi đi sâu hơn một mức độ của dấu ngoặc và chọn từ đầu đến cuối theo chỉ mục thứ hai

(Ảnh của tác giả)

Cắt lát với các chỉ số tiêu cực

Khi cắt lát với các chỉ mục âm, lát cắt bắt đầu từ đầu và kết thúc một phần tử trước khi kết thúc, giống như với các chỉ mục dương. Vì vậy, ví dụ nếu tôi muốn in(arr[-4. -1]) phần tử cuối cùng được in có chỉ số -2

(Ảnh của tác giả)

Kết hợp các chỉ mục cắt và chỉ mục đơn

Xin lưu ý rằng khi bạn sử dụng các chỉ mục đơn và cắt đồng thời, bạn sẽ mất kích thước. Cụ thể hơn, bạn mất thứ nguyên nơi bạn sử dụng chỉ mục duy nhất. Hãy xem xét ví dụ sau

(Ảnh của tác giả)

Kích thước thứ ba sẽ được giảm. Nó có ý nghĩa bởi vì, các dấu ngoặc bao quanh các phân đoạn bên trong nhất không cần thiết cho chỉ một phần tử và numpy sẽ loại bỏ chúng. Mảng kết quả sẽ là 2D

(Ảnh của tác giả)

Bạn luôn có thể sử dụng chỉ mục âm khi bắt đầu và tích cực khi kết thúc. Tuy nhiên, đảm bảo rằng phần tử ở chỉ mục bắt đầu phải ở bên trái của phần tử có chỉ mục kết thúc. Nếu không, bạn sẽ nhận lại một mảng trống

Bạn có thể cắt một mảng trong python không?

Cắt mảng tương tự như cắt danh sách trong Python . Lập chỉ mục mảng cũng bắt đầu từ 0. Tuy nhiên, vì mảng có thể có nhiều chiều nên chúng ta phải chỉ định lát cắt cho từng chiều. Vì chúng ta chủ yếu làm việc với mảng 2 chiều trong hướng dẫn này, nên chúng ta cần chỉ định hàng và cột giống như những gì chúng ta làm trong ma trận.

Làm cách nào để tách mảng trong python?

Phương thức array_split() trong Python dùng để chia một mảng thành nhiều mảng con có kích thước bằng nhau. Trong Python, một mảng là một cấu trúc dữ liệu được sử dụng để lưu trữ nhiều mục cùng loại với nhau