Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

Python में numpy.char.find() से सबस्ट्रिंग का न्यूनतम इंडेक्स खोजें (रेंज के साथ)

NumPy का numpy.char.find() फंक्शन स्ट्रिंग ऐरे के प्रत्येक एलिमेंट में सबस्ट्रिंग की पहली घटना का इंडेक्स लौटाता है। index() के विपरीत, सबस्ट्रिंग न मिलने पर यह ValueError के बजाय -1 लौटाता है।

सिंटैक्स

numpy.char.find(a, sub, start=0, end=None)
  • a: इनपुट स्ट्रिंग ऐरे।
  • sub: खोजा जाने वाला सबस्ट्रिंग।
  • start: खोज शुरुआत इंडेक्स (डिफ़ॉल्ट 0)।
  • end: खोज अंत इंडेक्स (डिफ़ॉल्ट: स्ट्रिंग अंत)।
  • वापसी: इंडेक्स का इंट ऐरे, न मिलने पर -1।

उदाहरण: रेंज-लिमिटेड खोज

import numpy as np

# स्ट्रिंग ऐरे
arr = np.array(['KATIE', 'JOHN', 'CRATE', 'AmY', 'BRADley'])

print("ऐरे:\n", arr)
print("\nडेटा टाइप:", arr.dtype)
print("डायमेंशन्स:", arr.ndim)
print("आकार:", arr.shape)
print("एलिमेंट्स:", arr.size)

# 'AT' खोजें, केवल इंडेक्स 1 से 2 तक (start=1, end=3)
# स्लाइस [1:3] = इंडेक्स 1, 2
indices = np.char.find(arr, 'AT', start=1, end=3)
print("\n'AT' का इंडेक्स (रेंज 1-2):\n", indices)

आउटपुट

ऐरे:
 ['KATIE' 'JOHN' 'CRATE' 'AmY' 'BRADley']
डेटा टाइप: 

विश्लेषण

स्ट्रिंगपूर्ण स्ट्रिंगस्लाइस [1:3]'AT' मिला?परिणाम
KATIEK A T I EA Tहां, इंडेक्स 11
JOHNJ O H NO Hनहीं-1
CRATEC R A T ER Aनहीं (AT इंडेक्स 2-3 पर)-1
AmYA m Ym Yनहीं-1
BRADleyB R A D l e yR Aनहीं (AT इंडेक्स 2-3 पर)-1

find() बनाम index()


arr = np.array(['HELLO', 'WORLD', 'TEST'])

print("find('X'):", np.char.find(arr, 'X'))    # [-1 -1 -1] - कोई एरर नहीं
print("index('X'):", end=" ")
try:
    print(np.char.index(arr, 'X'))
except ValueError as e:
    print("ValueError:", e)

केस-सेंसिटिव खोज


arr = np.array(['Hello', 'HELLO', 'hello'])
print("'LL':", np.char.find(arr, 'LL'))  # [-1 2 -1]
print("'ll':", np.char.find(arr, 'll'))  # [2 -1 2]

अंतिम घटना खोजें (rfind)


arr = np.array(['ABABAB', 'BABABA'])
print("पहला 'AB':", np.char.find(arr, 'AB'))    # [0 1]
print("अंतिम 'AB':", np.char.rfind(arr, 'AB'))  # [4 3]

संपूर्ण स्ट्रिंग खोज (नहीं सबस्ट्रिंग)


# पूर्ण स्ट्रिंग मैच के लिए == ऑपरेटर उपयोग करें
arr = np.array(['CAT', 'CATER', 'CAT'])
matches = (arr == 'CAT')
print("सटीक मैच:", matches)  # [True False True]
print("इंडेक्स:", np.where(matches)[0])  # [0 2]

उपयोग के मामले

  • बड़े टेक्स्ट डेटासेट्स में पैटर्न खोजना (वेक्टोराइज़्ड, तेज़)।
  • लॉग/CSV पार्सिंग में डिलीमीटर पोजीशन।
  • डेटा वैलिडेशन: आवश्यक सबस्ट्रिंग की उपस्थिति जांचना।
  • फीचर इंजीनियरिंग: टेक्स्ट में कीवर्ड उपस्थिति एनकोड करना।

नोट

find() उत्पादन कोड के लिए सुरक्षित है क्योंकि यह अपवाद नहीं उठाता। index() तभी उपयोग करें जब आप निश्चित हों कि सबस्ट्रिंग मौजूद है।

  1. - पायथन में बूलियन ऐरे लौटाएं जहां स्ट्रिंग एलिमेंट दिए गए सफ़िक्स से समाप्त होता है लेकिन शुरुआत और अंत टेस्ट करें

    पायथन नम्पी में बूलियन ऐरे लौटाने के लिए जो True हो जहां ऐरे में स्ट्रिंग एलिमेंट सफ़िक्स से समाप्त होता है, numpy.char.endswith() मेथड का उपयोग करें। यह मेथड बूल्स का ऐरे आउटपुट करता है। पहला पैरामीटर इनपुट ऐरे है। दूसरा पैरामीटर सफ़िक्स है। वैकल्पिक start पैरामीटर के साथ, उस पोजीशन से शुरुआत टेस्

  1. - Python Pandas - इंडेक्स में डेटा का प्रतिनिधित्व करने वाली सरणी लौटाएं

    परिचय पैंडास इंडेक्स में डेटा का प्रतिनिधित्व करने वाली नम्पाई सरणी (numpy array) प्राप्त करने के लिए index.values प्रॉपर्टी का उपयोग करें। आवश्यक लाइब्रेरी आयात करें import pandas as pd इंडेक्स बनाएं index = pd.Index([Car, Bike, Truck, Ship, Airplane]) इंडेक्स प्रदर्शित करें print(पैंडास इंडेक्स

  1. - Python में सरणी में सबसे बड़े तत्व का इंडेक्स खोजने का प्रोग्राम

    मान लीजिए, हमें TestArray नामक एक क्लास दी गई है जिसमें एक सरणी है जो अन्य क्लास द्वारा एक्सेस नहीं की जा सकती और दो पब्लिक मेंबर फंक्शन length() और compare()। फंक्शन length() सरणी की लंबाई वापस करता है और फंक्शन compare() सरणी से विभिन्न सबएरे की तुलना करके तीन अलग-अलग मान वापस करता है। फंक्शन चार