ডক , এই পোস্টটি এবং এই অন্যান্য পোস্টটিnumpy.where()
পড়া সত্ত্বেও সঠিকভাবে বুঝতে আমার সমস্যা হচ্ছে ।
কেউ 1 ডি এবং 2 ডি অ্যারে সহ ধাপে ধাপে মন্তব্য করা উদাহরণগুলি সরবরাহ করতে পারে?
ডক , এই পোস্টটি এবং এই অন্যান্য পোস্টটিnumpy.where()
পড়া সত্ত্বেও সঠিকভাবে বুঝতে আমার সমস্যা হচ্ছে ।
কেউ 1 ডি এবং 2 ডি অ্যারে সহ ধাপে ধাপে মন্তব্য করা উদাহরণগুলি সরবরাহ করতে পারে?
উত্তর:
কিছুক্ষণ ঘোরাঘুরি করার পরে, আমি জিনিসগুলি সন্ধান করেছি এবং এটি অন্যদের সহায়তা করবে এই আশায় এখানে পোস্ট করছি।
স্বজ্ঞাতভাবে, np.where
" এই অ্যারেটিতে কোথায়, এন্ট্রি প্রদত্ত শর্তটি পূরণ করে " আমাকে জিজ্ঞাসা করার মতো ।
>>> a = np.arange(5,10)
>>> np.where(a < 8) # tell me where in a, entries are < 8
(array([0, 1, 2]),) # answer: entries indexed by 0, 1, 2
এটি শর্ত পূরণ করে এমন অ্যারেতে প্রবেশের জন্যও ব্যবহার করা যেতে পারে:
>>> a[np.where(a < 8)]
array([5, 6, 7]) # selects from a entries 0, 1, 2
যখন a
2 ডি অ্যারে হয়, np.where()
সারি আইডিএক্স এর একটি অ্যারে এবং কল আইডিএক্স এর একটি অ্যারে প্রদান করে:
>>> a = np.arange(4,10).reshape(2,3)
array([[4, 5, 6],
[7, 8, 9]])
>>> np.where(a > 8)
(array(1), array(2))
1 ডি ক্ষেত্রে যেমন, আমরা np.where()
2 ডি অ্যারেতে শর্ত পূরণ করে এমন এন্ট্রি পেতে ব্যবহার করতে পারি:
>>> a[np.where(a > 8)] # selects from a entries 0, 1, 2
অ্যারে ([9])
দ্রষ্টব্য, যখন a
1 ডি হয়, np.where()
তবুও সারি আইডিএক্স এর একটি অ্যারে এবং কল আইডেক্সের একটি অ্যারে প্রদান করে তবে কলামগুলি দৈর্ঘ্য 1 এর, তাই পরবর্তীটি খালি অ্যারে হয়।
np.where(2d_array)
, এটি পরিষ্কার করার জন্য ধন্যবাদ! আপনার নিজের উত্তরটি গ্রহণ করা উচিত। ই: ওহ, এটি বন্ধ। ঠিক আছে, এটি হওয়া উচিত নয়
np.where
অন্যথায় সম্পূর্ণ উত্তর। ফাংশনটি শর্তের উপর নির্ভর করে x এবং y অ্যারে থেকে উপাদানগুলিও নির্বাচন করতে পারে। এই মন্তব্যে সীমিত স্থান কিন্তু দেখুন: np.where(np.array([[False,False,True], [True,False,False]]), np.array([[8,2,6], [9,5,0]]), np.array([[4,8,7], [3,2,1]]))
ফিরে আসবে array([[4, 8, 6], [9, 2, 1]])
। X এবং y এর কোন উপাদানগুলি সত্য / মিথ্যা অনুসারে চয়ন করা হয়েছে তা লক্ষ্য করুন
condition
হয় , তখন এই ফাংশনটি একটি শর্টহ্যান্ড np.asarray(condition).nonzero()
।
এখানে আরও কিছু মজা। আমি দেখতে পেয়েছি যে প্রায়শই নুমপি আমার ইচ্ছা মতো করত - কখনও কখনও ডকস পড়ার চেয়ে জিনিসগুলি চেষ্টা করা আমার পক্ষে দ্রুত। আসলে উভয়ের মিশ্রণই সেরা।
আমি মনে করি আপনার উত্তর ঠিক আছে (এবং আপনি যদি এটি পছন্দ করেন তবে তা গ্রহণ করা ঠিক হবে)। এটি কেবল "অতিরিক্ত"।
import numpy as np
a = np.arange(4,10).reshape(2,3)
wh = np.where(a>7)
gt = a>7
x = np.where(gt)
print "wh: ", wh
print "gt: ", gt
print "x: ", x
দেয়:
wh: (array([1, 1]), array([1, 2]))
gt: [[False False False]
[False True True]]
x: (array([1, 1]), array([1, 2]))
... তবে:
print "a[wh]: ", a[wh]
print "a[gt] ", a[gt]
print "a[x]: ", a[x]
দেয়:
a[wh]: [8 9]
a[gt] [8 9]
a[x]: [8 9]