python - কিভাবে NumPy bool অ্যারের মধ্যে সত্য উপাদান সংখ্যা গণনা করা




arrays count (3)

আপনি একাধিক বিকল্প আছে। দুটি বিকল্প নিম্নলিখিত।

numpy.sum(boolarr)
numpy.count_nonzero(boolarr)

এখানে একটি উদাহরণ:

>>> import numpy as np
>>> boolarr = np.array([[0, 0, 1], [1, 0, 1], [1, 0, 1]], dtype=np.bool)
>>> boolarr
array([[False, False,  True],
       [ True, False,  True],
       [ True, False,  True]], dtype=bool)

>>> np.sum(boolarr)
5

অবশ্যই, যে একটি বুল-নির্দিষ্ট উত্তর। আরো সাধারণভাবে, আপনি numpy.count_nonzero ব্যবহার করতে পারেন।

>>> np.count_nonzero(boolarr)
5

আমার একটি নুপি অ্যারে 'বুলার' বুলিয়ান টাইপ আছে। আমি উপাদানগুলির সংখ্যা গণনা করতে চাই যার মান True । এই টাস্ক জন্য নিবেদিত একটি NumPy বা পাইথন রুটিন আছে? অথবা, আমার স্ক্রিপ্টের উপাদানগুলির উপর পুনরাবৃত্তি করতে হবে?


এই প্রশ্নটি আমার জন্য একটি অনুরূপ প্রশ্ন সমাধান করেছে এবং আমি ভাবলাম আমার ভাগ করা উচিত:

কাঁচা পাইথনে আপনি একটি শব্দে সত্য মান গণনা করতে sum () ব্যবহার করতে পারেন:

>>> sum([True,True,True,False,False])
3

কিন্তু এই কাজ করবে না:

>>> sum([[False, False, True], [True, False, True]])
TypeError...

হয়তো এই কেউ সাহায্য করবে।


যদি আপনি প্রতি-সারি গণনা করতে চান তবে axis=1 সরবরাহ করুন:

boolarr
# array([[False, False,  True],
#        [ True, False,  True],
#        [ True, False,  True]], dtype=bool)

boolarr.sum(axis=1)
# array([1, 2, 2])

একইভাবে, np.count_nonzero :

np.count_nonzero(boolarr, axis=1)
# array([1, 2, 2])







boolean