Python 3.7 - array

सरणी - संख्यात्मक मानों के कुशल सरणियाँ




python

सरणी - संख्यात्मक मानों के कुशल सरणियाँ

यह मॉड्यूल एक ऑब्जेक्ट प्रकार को परिभाषित करता है जो कि बुनियादी मूल्यों की एक सरणी को कॉम्पैक्ट कर सकता है: वर्ण, पूर्णांक, फ्लोटिंग पॉइंट नंबर। Arrays अनुक्रम प्रकार हैं और सूचियों की तरह बहुत व्यवहार करते हैं, सिवाय इसके कि उनमें संग्रहीत वस्तुओं का प्रकार विवश है। प्रकार एक कोड का उपयोग करके ऑब्जेक्ट निर्माण समय पर निर्दिष्ट किया जाता है, जो एक एकल वर्ण है। निम्न प्रकार के कोड परिभाषित हैं:

कोड टाइप करें C प्रकार अजगर प्रकार बाइट्स में न्यूनतम आकार टिप्पणियाँ
'b' हस्ताक्षरित चार पूर्णांक 1
'B' अचिन्हित वर्ण पूर्णांक 1
'u' Py_UNICODE यूनिकोड चरित्र 2 (1)
'h' अल्प हस्ताक्षर किए पूर्णांक 2
'H' अहस्ताक्षरित छोटा पूर्णांक 2
'i' हस्ताक्षरित int पूर्णांक 2
'I' अहस्ताक्षरित int पूर्णांक 2
'l' लंबे समय तक हस्ताक्षर किए पूर्णांक 4
'L' अहस्ताक्षरित लंबे पूर्णांक 4
'q' लंबे समय तक हस्ताक्षर किए पूर्णांक 8 (2)
'Q' लंबे समय तक अहस्ताक्षरित पूर्णांक 8 (2)
'f' नाव नाव 4
'd' दोहरा नाव 8

टिप्पणियाँ:

  1. 'u' प्रकार कोड पाइथन के अप्रचलित यूनिकोड चरित्र ( Py_UNICODE जो कि wchar_t ) से Py_UNICODE है। प्लेटफॉर्म के आधार पर, यह 16 बिट्स या 32 बिट्स हो सकता है।

    'u' को बाकी Py_UNICODE API के साथ हटा दिया जाएगा।

    संस्करण 3.3 के बाद से हटा दिया गया, संस्करण 4.0 में हटा दिया जाएगा।

  2. 'q' और 'Q' प्रकार के कोड केवल तभी उपलब्ध होते हैं, long long पायथन बनाने के लिए इस्तेमाल किया जाने वाला प्लेटफॉर्म सी कंपाइलर long long या, विंडोज, __int64 पर समर्थन करता है।

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

मूल्यों का वास्तविक प्रतिनिधित्व मशीन वास्तुकला (सख्ती से बोलना, सी कार्यान्वयन द्वारा) द्वारा निर्धारित किया जाता है। वास्तविक आकार को itemsize विशेषता के माध्यम से एक्सेस किया जा सकता है।

मॉड्यूल निम्नलिखित प्रकार को परिभाषित करता है:

class array.array(typecode[, initializer])

एक नया एरे जिसका आइटम टाइप-इनबॉस द्वारा प्रतिबंधित है, और वैकल्पिक इनिशियलाइज़र मूल्य से इनिशियलाइज़ किया गया है, जो एक सूची, एक बाइट्स जैसी वस्तु या उपयुक्त प्रकार के तत्वों पर चलने योग्य होना चाहिए।

यदि कोई सूची या स्ट्रिंग दी गई है, तो frombytes() को सरणी में प्रारंभिक आइटम जोड़ने के लिए नए सरणी की fromlist() , frombytes() , या fromunicode() विधि (नीचे देखें) से पास किया जाता है। अन्यथा, iterable initializer को extend() विधि से पारित किया जाता है।

array.typecodes

सभी उपलब्ध प्रकार कोड के साथ एक स्ट्रिंग।

ऐरे ऑब्जेक्ट्स अनुक्रमण, स्लाइसिंग, कॉन्सेटेशन और गुणा के साधारण अनुक्रम संचालन का समर्थन करते हैं। स्लाइस असाइनमेंट का उपयोग करते समय, असाइन किया गया मान समान प्रकार के कोड के साथ एक सरणी ऑब्जेक्ट होना चाहिए; अन्य सभी मामलों में, TypeError को उठाया जाता है। सरणी ऑब्जेक्ट्स बफ़र इंटरफ़ेस को भी कार्यान्वित करते हैं, और जहाँ भी बाइट्स जैसी वस्तुओं का समर्थन किया जाता है, उनका उपयोग किया जा सकता है।

निम्नलिखित डेटा आइटम और विधियाँ भी समर्थित हैं:

array.typecode

सरणी बनाने के लिए उपयोग किया जाने वाला टाइपबॉक्‍स वर्ण

array.itemsize

आंतरिक प्रतिनिधित्व में एक सरणी आइटम के बाइट्स में लंबाई।

array.append(x)

सरणी के अंत में मान x के साथ एक नया आइटम जोड़ें।

array.buffer_info()

सरणी की सामग्री को रखने के लिए उपयोग किए गए बफ़र के तत्वों में वर्तमान मेमोरी पता और (address, length) देने वाले एक टपल (address, length) लौटाएं। बाइट्स में मेमोरी बफर के आकार को array.buffer_info()[1] * array.itemsize रूप में गणना की जा सकती है। निम्न-स्तरीय (और स्वाभाविक रूप से असुरक्षित) I / O इंटरफेस के साथ काम करते समय यह कभी-कभी उपयोगी होता है, जिसमें मेमोरी एड्रेस की आवश्यकता होती है, जैसे कि कुछ ioctl() संचालन। लौटे नंबर तब तक मान्य होते हैं, जब तक कि सरणी मौजूद हो और उस पर कोई लंबाई बदलने वाले ऑपरेशन लागू न हों।

ध्यान दें

C या C ++ में लिखे कोड से सरणी ऑब्जेक्ट्स का उपयोग करते समय (प्रभावी रूप से इस जानकारी का उपयोग करने का एकमात्र तरीका), यह सरणी ऑब्जेक्ट्स द्वारा समर्थित बफर इंटरफ़ेस का उपयोग करने के लिए अधिक समझ में आता है। यह पद्धति पिछड़ी संगतता के लिए बनी हुई है और नए कोड में इसे टाला जाना चाहिए। बफर प्रोटोकॉल बफ़र प्रोटोकॉल में प्रलेखित है।

array.byteswap()

सरणी के सभी आइटम "बाइट्सवाप"। यह केवल उन मानों के लिए समर्थित है जो आकार में 1, 2, 4 या 8 बाइट्स हैं; अन्य प्रकार के मूल्यों के लिए, RuntimeError को उठाया जाता है। एक अलग बाइट ऑर्डर के साथ मशीन पर लिखी गई फ़ाइल से डेटा पढ़ते समय यह उपयोगी है।

array.count(x)

सरणी में x की घटनाओं की संख्या लौटाएं।

array.extend(iterable)

सरणी के अंत तक चलने योग्य से आइटम जोड़ें। यदि पुनरावृत्ति एक और सरणी है, तो इसका ठीक उसी प्रकार का कोड होना चाहिए; यदि नहीं, तो TypeError को उठाया जाएगा। यदि पुनरावृत्त एक सरणी नहीं है, तो इसे पुनरावृत्त होना चाहिए और इसके तत्वों को सरणी में संलग्न करने के लिए सही प्रकार होना चाहिए।

array.frombytes(s)

स्ट्रिंग को मशीन मूल्यों से fromfile() , मशीन मूल्यों की एक सरणी के रूप में स्ट्रिंग की व्याख्या करते हैं (जैसे कि यह फाइल से fromfile() विधि का उपयोग करके पढ़ा गया था)।

3.2 संस्करण में नया: स्पष्टता के लिए fromstring() का नाम बदलकर frombytes() दिया गया है।

array.fromfile(f, n)

फ़ाइल ऑब्जेक्ट f से n आइटम (मशीन मान के रूप में) पढ़ें और उन्हें सरणी के अंत में जोड़ें। यदि n से कम आइटम उपलब्ध हैं, तो EOFError को उठाया जाता है, लेकिन जो आइटम उपलब्ध थे, उन्हें अभी भी सरणी में डाला गया है। f एक वास्तविक बिल्ट-इन फ़ाइल ऑब्जेक्ट होना चाहिए; एक read() विधि के साथ कुछ और नहीं होगा।

array.fromlist(list)

सूची से आइटम जोड़ें। यह for x in list: a.append(x) समतुल्य है for x in list: a.append(x) को छोड़कर अगर कोई प्रकार की त्रुटि है, तो सरणी अपरिवर्तित है।

array.fromstring()

frombytes() लिए पदावनत उर्फ।

array.fromunicode(s)

इस सरणी को दिए गए यूनिकोड स्ट्रिंग के डेटा के साथ विस्तारित करता है। सरणी का प्रकार 'u' होना चाहिए; अन्यथा एक ValueError उठाया जाता है। यूनिकोड डेटा को किसी अन्य प्रकार के सरणी में जोड़ने के लिए array.frombytes(unicodestring.encode(enc)) का उपयोग करें।

array.index(x)

सबसे छोटी मैं लौटें, जैसे कि मैं सरणी में x की पहली घटना का सूचकांक हूं

array.insert(i, x)

स्थिति i से पहले सरणी में मान x के साथ एक नया आइटम डालें। ऋणात्मक मानों को सरणी के अंत के सापेक्ष माना जाता है।

array.pop([i])

सूचकांक से आइटम को सरणी से निकालता है और इसे वापस करता है। वैकल्पिक तर्क -1 को डिफॉल्ट करता है, जिससे कि डिफ़ॉल्ट रूप से अंतिम आइटम हटा दिया जाता है और वापस आ जाता है।

array.remove(x)

सरणी से x की पहली घटना को निकालें।

array.reverse()

सरणी में आइटम के क्रम को उल्टा करें।

array.tobytes()

सरणी को मशीन मानों की एक सरणी में परिवर्तित करें और बाइट्स प्रतिनिधित्व (बाइट्स का वही क्रम जो कि tofile() विधि द्वारा एक फ़ाइल में लिखा जाएगा tofile()

संस्करण 3.2 में नया: स्पष्टता के लिए tostring() का नाम बदलकर tobytes() दिया गया है।

array.tofile(f)

फ़ाइल ऑब्जेक्ट f के लिए सभी आइटम (मशीन मान के रूप में) लिखें।

array.tolist()

उसी आइटम के साथ सरणी को एक साधारण सूची में बदलें।

array.tostring()

tobytes() लिए पदावनत उर्फ tobytes()

array.tounicode()

सरणी को एक यूनिकोड स्ट्रिंग में परिवर्तित करें। सरणी का प्रकार 'u' होना चाहिए; अन्यथा एक ValueError उठाया जाता है। कुछ अन्य प्रकार की एक सरणी से एक यूनिकोड स्ट्रिंग प्राप्त करने के लिए array.tobytes().decode(enc) उपयोग करें।

जब एक ऐरे ऑब्जेक्ट को प्रिंट किया जाता है या एक स्ट्रिंग में परिवर्तित किया जाता है, तो इसे array(typecode, initializer) रूप में दर्शाया जाता है। एनेलाइज़र को छोड़ दिया जाता है यदि सरणी खाली है, अन्यथा यह एक स्ट्रिंग है यदि टाइपबाउंड 'u' , अन्यथा यह संख्याओं की एक सूची है। स्ट्रिंग को गारंटी दी जाती है कि वह समान प्रकार और मान के साथ एक सरणी में वापस परिवर्तित की जा सकती है, जो कि eval() का उपयोग कर रहा है, इसलिए जब तक array वर्ग को from array import array उपयोग करके array वर्ग आयात किया गया हो। उदाहरण:

array('l')
array('u', 'hello \u2641')
array('l', [1, 2, 3, 4, 5])
array('d', [1.0, 2.0, 3.14])

यह भी देखें

Module struct
विषम बाइनरी डेटा की पैकिंग और अनपैकिंग।
Module xdrlib
कुछ दूरस्थ प्रक्रिया कॉल सिस्टम में उपयोग किए जाने वाले बाहरी डेटा प्रतिनिधित्व (XDR) डेटा की पैकिंग और अनपैकिंग।
न्यूमेरिकल पायथन डॉक्यूमेंटेशन
न्यूमेरिक पायथन एक्सटेंशन (NumPy) एक और सरणी प्रकार को परिभाषित करता है; न्यूमेरिकल पायथन के बारे में अधिक जानकारी के लिए http://www.numpy.org/ देखें।