Có một cách tốt, cô đọng/tích hợp để xem liệu tất cả các giá trị trong một số không phải là số không? Ngay bây giờ tôi đang sử dụng
# create 1D numpy array from a list arr = np.array[[0, 0, 0, 0, 0, 0]]7 với một chút hiểu biết danh sách, nhưng [với tôi] có vẻ như nên có một phương pháp biểu cảm hơn. Tôi muốn xem điều này là hơi tương đương với
# create 1D numpy array from a list arr = np.array[[0, 0, 0, 0, 0, 0]]8 trong C.
values = [0, 0, 0, 0, 0]
# Test if all items in values tuple are zero
if all[[ v == 0 for v in values ]] :
print 'indeed they are'
Tôi mong đợi một chức năng tích hợp thực hiện một cái gì đó như:
def allcmp[iter, value] :
for item in iter :
if item != value :
return False
return True
Có phải chức năng đó tồn tại trong Python và tôi chỉ bị mù, hay tôi chỉ nên gắn bó với phiên bản gốc của mình?
Cập nhật
Tôi không gợi ý rằng
# create 1D numpy array from a list arr = np.array[[0, 0, 0, 0, 0, 0]]9 là giải pháp. Đó là một ví dụ về những gì tôi nghĩ có thể có ý nghĩa hơn. Đây không phải là nơi tôi sẽ đề xuất các bản dựng mới cho Python.
Theo tôi,
# create 1D numpy array from a list arr = np.array[[0, 0, 0, 0, 0, 0]]7 không có ý nghĩa. Nó không thể hiện những gì "tất cả" đang kiểm tra. Bạn có thể giả định rằng
# create 1D numpy array from a list arr = np.array[[0, 0, 0, 0, 0, 0]]7 có một điều đáng tin cậy, nhưng nó không thể hiện những gì chức năng đang tìm kiếm [mộ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']2 có thể kiểm tra tất cả chúng cho
# 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']3]. Những gì tôi đang yêu cầu là một số chức năng như
# create 1D numpy array from a list arr = np.array[[0, 0, 0, 0, 0, 0]]9 của tôi có hai tham số: một giá trị so sánh và có thể so sánh. Tôi đang hỏi liệu có một chức năng tích hợp có một cái gì đó tương tự như tôi tạo ra
# create 1D numpy array from a list arr = np.array[[0, 0, 0, 0, 0, 0]]9 của tôi không.
Tôi đã gọi cho tôi
# create 1D numpy array from a list arr = np.array[[0, 0, 0, 0, 0, 0]]9 vì nền C của tôi và
# create 1D numpy array from a list arr = np.array[[0, 0, 0, 0, 0, 0]]8, tên của hàm tạo ra của tôi không liên quan ở đây.the name of my made up function is irrelevant here.
Trong bài viết này, chúng tôi 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 numpy là 0. Sau đó, chúng tôi sẽ xem cách tìm các hàng hoặc cột chỉ có số 0 trong mảng 2D hoặc ma trận.
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 numpy 1D,
# create 1D numpy array from a list arr = np.array[[0, 0, 0, 0, 0, 0]]
Bây giờ chúng tôi 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ái 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:
Array contains only 0
Nó xác nhận rằng mảng mảng chỉ chứa zeros. Làm thế nào nó có hoạt động?
How did it work?
Khi chúng ta so sánh một mảng numpy 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 so sánh. Vì vậy, khi chúng tôi so sánh mảng của chúng tôi với 0 I.E.
bool_arr = [arr == 0]
Nó đã trả lại một mảng bool,
print[bool_arr]
Đầu ra:
[True True True True True True]
Nó xác nhận rằng mảng mảng chỉ chứa zeros. Làm thế nào nó có hoạt động?
result = np.all[bool_arr] print[result]
Đầu ra:
def allcmp[iter, value] :
for item in iter :
if item != value :
return False
return True
0Nó xác nhận rằng mảng mảng chỉ chứa zeros. Làm thế nào nó có hoạt động?
Khi chúng ta so sánh một mảng numpy 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 so sánh. Vì vậy, khi chúng tôi so sánh mảng của chúng tôi với 0 I.E.
Nó đã trả lại một mảng bool,
Vì tất cả các phần tử là 0 trong mảng mảng, do đó, mảng bool được trả về chỉ có các giá trị thực. Sau đó, chúng tôi đã kiểm tra xem tất cả các yếu tố trong mảng bool này có đúng hay không sử dụng numpy.all [],
def allcmp[iter, value] :
for item in iter :
if item != value :
return False
return True
1Đâ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ó số không.
def allcmp[iter, value] :
for item in iter :
if item != value :
return False
return True
2Đầu ra:
Array contains only 0
Nó xác nhận rằng mảng mảng chỉ chứa zeros. Làm thế nào nó có hoạt động?
Khi chúng ta so sánh một mảng numpy 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 so sánh. Vì vậy, khi chúng tôi so sánh mảng của chúng tôi với 0 I.E.
def allcmp[iter, value] :
for item in iter :
if item != value :
return False
return True
4Nó đã trả lại một mảng bool,
def allcmp[iter, value] :
for item in iter :
if item != value :
return False
return True
5Đầu ra:
Array contains only 0
Nó xác nhận rằng mảng mảng chỉ chứa zeros. Làm thế nào nó có hoạt động?
Khi chúng ta so sánh một mảng numpy 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 so sánh. Vì vậy, khi chúng tôi so sánh mảng của chúng tôi với 0 I.E.
Nó đã trả lại một mảng bool,
def allcmp[iter, value] :
for item in iter :
if item != value :
return False
return True
7Đầu ra:
Array contains only 0
Nó xác nhận rằng mảng mảng chỉ chứa zeros. Làm thế nào nó có hoạt động?
Khi chúng ta so sánh một mảng numpy 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 so sánh. Vì vậy, khi chúng tôi so sánh mảng của chúng tôi với 0 I.E.
Nó đã trả lại một mảng bool,
def allcmp[iter, value] :
for item in iter :
if item != value :
return False
return True
9Đầu ra:
Array contains only 0
Nó xác nhận rằng mảng mảng chỉ chứa zeros. Làm thế nào nó có hoạt động?
Khi chúng ta so sánh một mảng numpy 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 so sánh. Vì vậy, khi chúng tôi so sánh mảng của chúng tôi với 0 I.E.
Nó đã trả lại một mảng bool,
import numpy as np1
Đầu ra:
Array contains only 0
Nó xác nhận rằng mảng mảng chỉ chứa zeros. Làm thế nào nó có hoạt động?
Khi chúng ta so sánh một mảng numpy 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 so sánh. Vì vậy, khi chúng tôi so sánh mảng của chúng tôi với 0 I.E.
Nó đã trả lại một mảng bool,
import numpy as np3
Vì tất cả các phần tử là 0 trong mảng mảng, do đó, mảng bool được trả về chỉ có các giá trị thực. Sau đó, chúng tôi đã kiểm tra xem tất cả các yếu tố trong mảng bool này có đúng hay không sử dụng numpy.all [],
import numpy as np4
Đầu ra:
Array contains only 0
Nó xác nhận rằng mảng mảng chỉ chứa zeros. Làm thế nào nó có hoạt động?
import numpy as np6
Đầu ra:
import numpy as np7
Nó xác nhận rằng mảng mảng chỉ chứa zeros. Làm thế nào nó có hoạt động?
import numpy as np8
Đầu ra:
def allcmp[iter, value] :
for item in iter :
if item != value :
return False
return True
0Nó xác nhận rằng mảng mảng chỉ chứa zeros. Làm thế nào nó có hoạt động?
Khi chúng ta so sánh một mảng numpy 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 so sánh. Vì vậy, khi chúng tôi so sánh mảng của chúng tôi với 0 I.E.
# create 1D numpy array from a list arr = np.array[[0, 0, 0, 0, 0, 0]]0
Nó đã trả lại một mảng bool,
Vì tất cả các phần tử là 0 trong mảng mảng, do đó, mảng bool được trả về chỉ có các giá trị thực. Sau đó, chúng tôi đã kiểm tra xem tất cả các yếu tố trong mảng bool này có đúng hay không sử dụng numpy.all [],
# create 1D numpy array from a list arr = np.array[[0, 0, 0, 0, 0, 0]]1
Đầu ra:
# create 1D numpy array from a list arr = np.array[[0, 0, 0, 0, 0, 0]]2
Chúng tôi đã lặp lại trên mỗi hàng của mảng 2D numpy và 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 đó bằng 0 hay không, bằng cách so sánh tất cả các mục trong hàng đó với 0.
Tìm các cột chỉ có số không trong ma trận hoặc mảng 2D
# create 1D numpy array from a list arr = np.array[[0, 0, 0, 0, 0, 0]]3
Đầu ra:
# create 1D numpy array from a list arr = np.array[[0, 0, 0, 0, 0, 0]]4
Chúng tôi đã lặp lại trên mỗi cột của mảng 2D numpy và với mỗi cột chúng tôi đã kiểm tra xem tất cả các phần tử trong đó bằng không hoặc không, bằng cách so sánh tất cả các mục trong cột đó với 0.
Ví dụ hoàn chỉnh như sau,
# create 1D numpy array from a list arr = np.array[[0, 0, 0, 0, 0, 0]]5
Đầu ra:
# create 1D numpy array from a list arr = np.array[[0, 0, 0, 0, 0, 0]]6