ব্যতিক্রম হওয়ার কারণ হ'ল andসুস্পষ্টভাবে কল bool। প্রথমে বাম অপারেন্ডে এবং (যদি বাম অপারেন্ড হয় True) তারপরে ডান অপারেণ্ডে। সুতরাং x and yসমতূল্য bool(x) and bool(y)।
তবে boolএকটি উপর numpy.ndarray(যদি এটি একাধিক উপাদান রয়েছে) ব্যতিক্রম আপনি দেখেছি নিক্ষেপ করা হবে:
>>> import numpy as np
>>> arr = np.array([1, 2, 3])
>>> bool(arr)
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
bool()কল অন্তর্নিহিত রয়েছে and, কিন্তু এর মধ্যে if, while, or, তাই নিচের উদাহরণটি কোন ব্যর্থতা হবে:
>>> arr and arr
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
>>> if arr: pass
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
>>> while arr: pass
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
>>> arr or arr
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
পাইথনে আরও ফাংশন এবং স্টেটমেন্ট রয়েছে যা boolকলগুলি আড়াল করে, উদাহরণস্বরূপ 2 < x < 10লেখার অন্য একটি উপায় 2 < x and x < 10। আর andডাকব bool: bool(2 < x) and bool(x < 10)।
উপাদান ভিত্তিক জন্য সমতুল্য andহবে np.logical_andফাংশন, একভাবে আপনি ব্যবহার করতে পারে np.logical_orসমতুল হিসাবে or।
বুলিয়ান অ্যারে - এবং তুলনা পছন্দ <, <=, ==, !=, >=এবং >NumPy উপর অ্যারে বুলিয়ান NumPy অ্যারে আসতে - আপনার কাছে ব্যবহার করতে পারেন উপাদান-অনুযায়ী, bitwise ফাংশন (এবং অপারেটরদের): np.bitwise_and( &অপারেটর)
>>> np.logical_and(arr > 1, arr < 3)
array([False, True, False], dtype=bool)
>>> np.bitwise_and(arr > 1, arr < 3)
array([False, True, False], dtype=bool)
>>> (arr > 1) & (arr < 3)
array([False, True, False], dtype=bool)
এবং bitwise_or( |অপারেটর):
>>> np.logical_or(arr <= 1, arr >= 3)
array([ True, False, True], dtype=bool)
>>> np.bitwise_or(arr <= 1, arr >= 3)
array([ True, False, True], dtype=bool)
>>> (arr <= 1) | (arr >= 3)
array([ True, False, True], dtype=bool)
লজিকাল এবং বাইনারি ফাংশনগুলির একটি সম্পূর্ণ তালিকা নম্পপি ডকুমেন্টেশনে পাওয়া যাবে: