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
- Tạo mảng 1D[X] và mảng 2D[Y]
- 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
- 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
- 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]]
0Out:
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]]
2Out: array[[6, 4, 2, 7]]
3Hoặ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