NumPy 1.14 - numpy.digitize()

numpy.digitize




numpy

numpy.digitize

numpy.digitize(x, bins, right=False)

उन सूचकांकों को लौटाएं जिनके लिए इनपुट ऐरे में प्रत्येक मान है।

लौटाया गया प्रत्येक सूचकांक ऐसा है जो bins[i-1] <= x < bins[i] अगर bins नीरस रूप से बढ़ रहा है, या bins[i-1] > x >= bins[i] यदि bins मोनोटोनिक रूप से घट रहे हैं। यदि x में मान bins की सीमा से परे हैं, तो 0 या len(bins) उपयुक्त के रूप में लौटाए जाते हैं। यदि सही है, तो सही बिन बंद है, इसलिए सूचकांक i ऐसा है जो bins[i-1] < x <= bins[i] या bins[i-1] >= x > bins[i] अगर bins क्रमशः नीरस रूप से बढ़ रहा है या घट रहा है।

पैरामीटर:

x : array_like

इनपुट सरणी को बायन किया जाएगा। NumPy 1.10.0 से पहले, इस सरणी को 1-आयामी होना था, लेकिन अब इसका कोई भी आकार हो सकता है।

डिब्बे : array_like

डिब्बे की सरणी। इसे 1-आयामी और एकरस होना होगा।

सही : बूल, वैकल्पिक

यह इंगित करते हुए कि क्या अंतराल में दाएं या बाएं बिन किनारे शामिल हैं। डिफ़ॉल्ट व्यवहार (दाएं == गलत) यह दर्शाता है कि अंतराल में सही किनारा शामिल नहीं है। बायां बिन अंत इस मामले में खुला है, अर्थात, डिब्बे [i-1] <= x <bins [i] मोनोटोनिक रूप से बढ़ते डिब्बे के लिए डिफ़ॉल्ट व्यवहार है।

यह दिखाता है:

बाहर : ndarray ints

सूचकांकों का आउटपुट सरणी, x के समान आकार का।

जन्म देती है:

ValueError

यदि bins मोनोटोनिक नहीं हैं।

त्रुटि प्रकार

यदि इनपुट का प्रकार जटिल है।

यह भी देखें

bincount , histogram , unique , searchsorted

टिप्पणियाँ

यदि x में मान ऐसे हैं, जो बिन सीमा के बाहर आते हैं, तो सूचकांकों के साथ सूचकांक को bins प्रयास करते हैं जो रिटर्न को digitize , परिणामस्वरूप IndexError होगा।

संस्करण 1.10.0 में नया।

np.digitize संदर्भ में कार्यान्वित किया जाता है। इसका मतलब है कि मानों को बिन करने के लिए एक द्विआधारी खोज का उपयोग किया जाता है, जो कि पिछली रैखिक खोज की तुलना में बड़ी संख्या में डिब्बे के लिए बेहतर होता है। यह इनपुट सरणी के लिए 1-आयामी होने की आवश्यकता को भी हटा देता है।

उदाहरण

>>> x = np.array([0.2, 6.4, 3.0, 1.6])
>>> bins = np.array([0.0, 1.0, 2.5, 4.0, 10.0])
>>> inds = np.digitize(x, bins)
>>> inds
array([1, 4, 3, 2])
>>> for n in range(x.size):
...   print(bins[inds[n]-1], "<=", x[n], "<", bins[inds[n]])
...
0.0 <= 0.2 < 1.0
4.0 <= 6.4 < 10.0
2.5 <= 3.0 < 4.0
1.0 <= 1.6 < 2.5
>>> x = np.array([1.2, 10.0, 12.4, 15.5, 20.])
>>> bins = np.array([0, 5, 10, 15, 20])
>>> np.digitize(x,bins,right=True)
array([1, 2, 3, 4, 4])
>>> np.digitize(x,bins,right=False)
array([1, 3, 3, 4, 5])