পুরানো উত্তর
এটি বিভ্রান্তিকর এক ধরণের। এটি আপনাকে যেখানে আপনার স্ট্যাটমেন্টটি সত্য তা LOCATIONS (তাদের সমস্ত) দেয়।
সুতরাং:
>>> a = np.arange(100)
>>> np.where(a > 30)
(array([31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
99]),)
>>> np.where(a == 90)
(array([90]),)
a = a*40
>>> np.where(a > 1000)
(array([26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
94, 95, 96, 97, 98, 99]),)
>>> a[25]
1000
>>> a[26]
1040
আমি এটিকে list.index () এর বিকল্প হিসাবে ব্যবহার করি তবে এর আরও অনেকগুলি ব্যবহার রয়েছে। আমি এটি 2D অ্যারে ব্যবহার করে নি।
http://docs.scipy.org/doc/numpy/references/generated/numpy.where.html
নতুন উত্তর
বলে মনে হচ্ছে সেই ব্যক্তি আরও কিছু মৌলিক কথা জিজ্ঞাসা করেছিলেন।
প্রশ্নটি ছিল আপনি কীভাবে এমন কোনও কিছু কার্যকর করতে পারেন যা কোনও ফাংশনকে (যেমন যেখানে) অনুরোধ করা হয়েছিল তা জানতে অনুমতি দেয়।
প্রথম দ্রষ্টব্য যে তুলনা অপারেটরগুলির মধ্যে যে কোনওটিকে কল করা একটি আকর্ষণীয় কাজ করে।
a > 1000
array([False, False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True`, True, True, True, True, True, True, True, True, True], dtype=bool)`
এটি "__gt__" পদ্ধতিটি ওভারলোড করে করা হয়। এই ক্ষেত্রে:
>>> class demo(object):
def __gt__(self, item):
print item
>>> a = demo()
>>> a > 4
4
আপনি দেখতে পাচ্ছেন, "a> 4" ছিল বৈধ কোড।
আপনি এখানে সমস্ত ওভারলোডেড ফাংশনগুলির একটি সম্পূর্ণ তালিকা এবং ডকুমেন্টেশন পেতে পারেন: http://docs.python.org/references/datamodel.html
অবিশ্বাস্যরকম কিছু হ'ল এটি করা কত সহজ। পাইথনে সমস্ত অপারেশন এমনভাবে করা হয়। A> খ বলা a এর সমতুল্য। জিটি (খ)!
numpy.where
2 'অপারেশনাল মোড', প্রথম এক রিটার্ন আছেindices
, যেখানেcondition is True
এবং ঐচ্ছিক প্যারামিটার যদিx
এবংy
উপস্থিত (হিসাবে একই আকৃতিcondition
, বা এই ধরনের আকৃতি broadcastable!), তা থেকে মান ফিরে আসবেx
যখনcondition is True
অন্যথায় থেকেy
। সুতরাং এটিwhere
আরও বহুমুখী করে তোলে এবং এটি প্রায়শই ব্যবহার করা সক্ষম করে। ধন্যবাদ