Kiểm tra mảng con trong mảng python

Trong bài viết này, chúng ta sẽ xem các hàm tiện lợi có thể được sử dụng để kiểm tra xem các phần tử của mảng 1D có tồn tại trong một mảng 2D khác hay không

chúng tôi sẽ chỉ làm theo các bước sau để kiểm tra các phần tử đó thuộc về một mảng khác

  1. Tạo mảng 1D(X) và mảng 2D(Y)
  2. sử dụng numpy. isin() để trả về một mảng boolean có cùng hình dạng với Y, đúng khi một phần tử của Y nằm trong X và sai nếu không
  3. sử dụng numpy. in1d() để kiểm tra xem từng phần tử của mảng 1-D X cũng có trong mảng thứ hai Y hay không
  4. Chỉ mục của Y trong đó các phần tử khớp với mảng 1D X

Bắt đầu nào

Tạo mảng 1D X và mảng 2D Y

Hãy tạo một mảng 1D X bằng cách sử dụng ngẫu nhiên numpy để tạo các số nguyên ngẫu nhiên có kích thước 4 và tạo một mảng 2D thứ hai với các số nguyên ngẫu nhiên có hình dạng 4x4

x = np.random.randint(0, 9, size=(4))
x

Out: array([6, 4, 2, 7])

y=np.random.randint(0, 9, size=(4, 4))
y

Out: 
array([[5, 8, 7, 8],
       [3, 2, 2, 3],
       [6, 0, 3, 7],
       [8, 6, 0, 3]])              

Ta sẽ kiểm tra xem các phần tử trong X có thuộc mảng Y hay không

sử dụng numpy. isin() để tìm các phần tử trong mảng 1D X tồn tại trong mảng 2D Y

cục mịch. isin() là một phiên bản hàm thông minh của từ khóa python trong. Nó tính toán phần tử trong mảng X, chỉ phát trên mảng 2D Y. Trả về một mảng boolean có cùng hình dạng với mảng 2D Y, đúng khi một phần tử của phần tử nằm trong mảng 1D X và ngược lại là Sai

Trong mảng boolean đầu ra, bạn có thể thấy tất cả các vị trí tồn tại các phần tử từ mảng 1D được đặt thành Đúng và Sai nếu không

np.isin(Y, X)

Out: 
array([[False, False,  True, False],
       [False,  True,  True, False],
       [ True, False, False,  True],
       [False,  True, False, False]])            

Bạn cũng có thể đảo ngược thử nghiệm bằng cách đặt tham số đảo ngược thành True

np.isin(Y, X, invert=True)

Out: 
array([[ True,  True, False,  True],
       [ True, False, False,  True],
       [False,  True,  True, False],
       [ True, False,  True,  True]])            

Chúng ta cũng có thể kiểm tra xem tất cả các phần tử trong mảng 2D Y có thuộc mảng 1D X hay không bằng cách thay đổi vị trí của X và Y trong hàm isin(). Trong trường hợp này, một mảng 1D có hình dạng X được trả về

________số 8

Out: 
array([ True, False,  True,  True])           

sử dụng numpy. in1d() để tìm các phần tử trong mảng 1D X tồn tại trong mảng 2D Y

cục mịch. in1d() kiểm tra xem từng phần tử của mảng 1-D cũng có trong mảng thứ hai hay không

Trả về một mảng boolean có cùng độ dài với X, đúng khi một phần tử của X nằm trong Y và ngược lại là Sai

Tài liệu chính thức của Numpy khuyến nghị sử dụng isin() trên in1d()

Out: array([6, 4, 2, 7])
0

Out: 
array([ True, False,  True,  True])           

Tìm chỉ số các phần tử của mảng 1D X trong mảng 2D Y

Cho đến nay, chúng ta đã thấy tất cả các hàm cung cấp cho chúng ta một mảng boolean để kiểm tra xem phần tử của một mảng có tồn tại trong một mảng khác hay không

Tiếp theo là gì?

Bạn có thể sử dụng numpy. where() cùng với numpy. isin() như hình bên dưới

Out: array([6, 4, 2, 7])
2

Out: array([6, 4, 2, 7])
3

Hoặc, chuyển đầu ra boolean của numpy. isin() trong numpy. nonzero() để trả về chỉ số của các phần tử trong mảng 2d Y khớp với phần tử trong mảng 1D X

Làm cách nào để kiểm tra xem một mảng có phải là tập hợp con của một mảng khác trong Python không?

if res = = Đúng. print ( "Có, danh sách là tập con của danh sách khác. " ) khác. print ( "Không, danh sách không phải là tập hợp con của danh sách khác. " )

Một mảng con trong Python là gì?

Mảng con là phần liền kề của mảng . Ví dụ {4, 6, 2 ,8} là mảng có 4 phần tử. Nếu giả sử 3 phần tử đầu tiên của mảng là {4, 6, 2} thì đó là mảng con của mảng {4, 6, 2, 8}.