Cách kiểm tra giá trị trong mảng python

Trong bài viết này, chúng ta sẽ thảo luận về bảy cách khác nhau để kiểm tra xem tất cả các giá trị trong một mảng có nhiều mảng có phải là 0 hay không. Sau đó, chúng ta sẽ xem cách tìm các hàng hoặc cột chỉ có các số 0 trong mảng hoặc ma trận 2D

Kiểm tra xem tất cả các giá trị trong Mảng Numpy 1D có bằng 0 không

Trước hết, chúng tôi sẽ nhập mô-đun numpy,

import numpy as np

Giả sử chúng ta có một mảng 1D có nhiều mảng,
# create 1D numpy array from a list
arr = np.array([0, 0, 0, 0, 0, 0])

Bây giờ chúng ta muốn xác nhận rằng tất cả các giá trị trong mảng này là 0. Có nhiều cách khác nhau để làm điều đó, hãy thảo luận từng cách một,

Phương pháp 1. sử dụng numpy. all() để kiểm tra xem mảng Numpy 1D chỉ chứa 0

Chúng ta có thể làm điều này trong một dòng duy nhất,

# Check if all elements in array are zero
is_all_zero = np.all((arr == 0))

if is_all_zero:
    print('Array contains only 0')
else:
    print('Array has non-zero items too')

Đầu ra.
______3
Nó xác nhận rằng mảng arr chỉ chứa các số không.
Nó hoạt động như thế nào?

Khi chúng ta so sánh một mảng có nhiều mảng với một phần tử duy nhất trong một biểu thức, thì phần tử đó được so sánh với từng giá trị của mảng và biểu thức này trả về một mảng bool, chứa kết quả của mỗi phép so sánh. Vì vậy, khi chúng ta so sánh mảng của mình với 0 i. e

bool_arr = (arr == 0)

Nó trả về một mảng bool,
print(bool_arr)

Đầu ra.
[True True True True True True]

Vì tất cả các phần tử trong mảng arr đều bằng 0 nên mảng bool trả về chỉ có giá trị True. Sau đó, chúng tôi đã kiểm tra xem tất cả các phần tử trong mảng bool này có đúng hay không bằng cách sử dụng numpy. all(),
result = np.all(bool_arr)

print(result)

Đầu ra.
True

Đây là cách chúng tôi xác nhận rằng mảng numpy của chúng tôi chỉ có các số không.

Phương pháp 2. sử dụng numpy. any() để kiểm tra xem mảng Numpy 1D chỉ chứa 0

Giả sử chúng ta có một mảng số nguyên 1D,

# create 1D numpy array from a list
arr = np.array([0, 0, 0, 0, 0, 0])

Khi một số nguyên được đánh máy thành giá trị bool, thì 0 ước tính là Sai và tất cả các số nguyên khác sẽ ước tính là True. Vì vậy, chúng ta có thể chuyển trực tiếp mảng số nguyên của mình sang numpy. any() cần một mảng bool,
# create 1D numpy array from a list
arr = np.array([0, 0, 0, 0, 0, 0])
0
Đầu ra.
Array contains only 0

Khi chức năng numpy. any() nhận một mảng int làm đối số, sau đó tất cả các giá trị trong mảng số nguyên này arr sẽ được chuyển thành các giá trị bool i. e. 0 thành Sai và những giá trị khác là Đúng. Như any() kiểm tra xem có bất kỳ giá trị nào trong mảng bool là True hay không. Vì vậy, nó sẽ trả về Sai nếu tất cả các giá trị trong mảng là 0. Sau đó, sử dụng not với giá trị được trả về, chúng tôi có thể xác nhận nếu mảng của chúng tôi chỉ chứa 0.

Phương pháp 3. sử dụng numpy. count_nonzero() để kiểm tra xem mảng Numpy 1D chỉ chứa 0

# create 1D numpy array from a list
arr = np.array([0, 0, 0, 0, 0, 0])
2
numpy. count_nonzero() trả về số lượng các giá trị khác 0 trong mảng arr. Chúng ta có thể sử dụng để kiểm tra xem mảng chỉ chứa các số 0 hay không
# create 1D numpy array from a list
arr = np.array([0, 0, 0, 0, 0, 0])
3
Đầu ra.
Array contains only 0

Vì số lượng các giá trị khác 0 trong mảng của chúng ta là 0, nên nó xác nhận rằng mảng của chúng ta chỉ có các số không.

Phương pháp 4. Sử dụng vòng lặp for để kiểm tra xem mảng Numpy 1D chỉ chứa 0

Thay vì sử dụng bất kỳ hàm dựng sẵn nào, chúng ta có thể lặp trực tiếp từng phần tử trong mảng và kiểm tra xem nó có bằng 0 hay không,

# create 1D numpy array from a list
arr = np.array([0, 0, 0, 0, 0, 0])
5
Đầu ra.
______3
Nó xác nhận rằng tất cả các giá trị trong mảng numpy arr của chúng ta là 0.

Phương pháp 5. Sử dụng tính năng Hiểu danh sách để kiểm tra xem mảng Numpy 1D chỉ chứa 0

Cũng giống như giải pháp trước đó, chúng ta có thể sử dụng Tính năng Hiểu danh sách để lặp lại từng phần tử trong mảng có nhiều mảng và tạo danh sách các giá trị khác 0. Sau đó, bằng cách kiểm tra xem kích thước của danh sách có bằng 0 hay không, chúng tôi có thể xác nhận xem tất cả các giá trị có bằng 0 trong mảng có nhiều mảng hay không,

# create 1D numpy array from a list
arr = np.array([0, 0, 0, 0, 0, 0])
7
Đầu ra.
______3
Nó xác nhận rằng tất cả các giá trị trong mảng numpy arr của chúng ta là 0.

Phương pháp 6. Sử dụng min() và max() để kiểm tra xem mảng Numpy 1D chỉ chứa 0

Nếu giá trị lớn nhất và nhỏ nhất trong một mảng bằng nhau và bằng 0, thì điều đó có nghĩa là tất cả các giá trị trong mảng đều bằng 0,

# create 1D numpy array from a list
arr = np.array([0, 0, 0, 0, 0, 0])
9
Đầu ra.
______3
Nó xác nhận rằng tất cả các giá trị trong mảng numpy arr của chúng ta là 0.

Kiểm tra xem tất cả các phần tử trong một mảng hoặc ma trận 2D có bằng 0 không

Giả sử chúng ta có một mảng 2D numpy,

# Check if all elements in array are zero
is_all_zero = np.all((arr == 0))

if is_all_zero:
    print('Array contains only 0')
else:
    print('Array has non-zero items too')
1
Bây giờ chúng tôi muốn kiểm tra xem tất cả các giá trị trong mảng hoặc ma trận Numpy 2D này có bằng 0 không. Để làm được điều đó, chúng ta có thể sử dụng kỹ thuật đầu tiên tôi. e. sử dụng numpy. all() và biểu thức điều kiện,
# Check if all elements in array are zero
is_all_zero = np.all((arr == 0))

if is_all_zero:
    print('Array contains only 0')
else:
    print('Array has non-zero items too')
2
Đầu ra.
Array contains only 0

Nó xác nhận rằng tất cả các giá trị trong mảng numpy arr của chúng ta là 0. logic là như nhau tôi. e. khi chúng ta so sánh một phần tử với mảng 2D trong một biểu thức, thì nó sẽ trả về một mảng bool 2D,
# Check if all elements in array are zero
is_all_zero = np.all((arr == 0))

if is_all_zero:
    print('Array contains only 0')
else:
    print('Array has non-zero items too')
4
Đầu ra.
# Check if all elements in array are zero
is_all_zero = np.all((arr == 0))

if is_all_zero:
    print('Array contains only 0')
else:
    print('Array has non-zero items too')
5
Sau đó sử dụng numpy. all() chúng tôi đã xác nhận nếu tất cả các giá trị trong mảng bool 2D này là True,
# Check if all elements in array are zero
is_all_zero = np.all((arr == 0))

if is_all_zero:
    print('Array contains only 0')
else:
    print('Array has non-zero items too')
6
Đầu ra.
True

Tìm các hàng & cột chỉ có các số 0 trong ma trận hoặc mảng 2D Numpy

Giả sử chúng ta có một mảng hoặc ma trận có nhiều mảng 2D,

# Check if all elements in array are zero
is_all_zero = np.all((arr == 0))

if is_all_zero:
    print('Array contains only 0')
else:
    print('Array has non-zero items too')
8
Bây giờ chúng tôi muốn tìm tất cả các hàng và cột chỉ chứa các số không. Hãy xem cách thực hiện điều đó,

Tìm các hàng chỉ có số 0 trong ma trận hoặc mảng 2D Numpy

# Check if all elements in array are zero
is_all_zero = np.all((arr == 0))

if is_all_zero:
    print('Array contains only 0')
else:
    print('Array has non-zero items too')
9
Đầu ra.
______30
Chúng tôi lặp lại từng hàng của mảng 2D có nhiều mảng và đối với mỗi hàng, chúng tôi kiểm tra xem tất cả các phần tử trong hàng đó có bằng 0 hay không bằng cách so sánh tất cả các mục .

Tìm các cột chỉ có số 0 trong ma trận hoặc mảng 2D Numpy

Array contains only 0
1
Đầu ra.
______32
Chúng tôi lặp lại từng cột của mảng 2D có nhiều mảng và đối với mỗi cột, chúng tôi kiểm tra xem tất cả các phần tử trong đó có bằng 0 hay không, bằng cách so sánh tất cả các mục trong .

Ví dụ đầy đủ như sau,

Array contains only 0
3
Đầu ra.
______34

Quảng cáo

Cảm ơn bạn đã đọc.