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

पायथन में array: न्यूमेरिक वैल्यूज़ के कुशल ऐरे

array मॉड्यूल C-स्टाइल टाइप्ड ऐरे प्रदान करता है - कॉम्पैक्ट, एक ही टाइप के न्यूमेरिक वैल्यूज़ स्टोर करने के लिए। लिस्ट के विपरीत, सभी एलिमेंट्स एक ही C टाइप के होने चाहिए।

बनाना

import array

# टाइप कोड 'i' = साइन्ड इंट (C int)
arr = array.array('i', range(5))
print(arr)        # array('i', [0, 1, 2, 3, 4])
print(type(arr))  # 

टाइप कोड्स

कोडC टाइपपायथन टाइपआकार (बाइट्स)
'b'signed charint1
'B'unsigned charint1
'u'Py_UNICODEUnicode कैरेक्टर2
'h'signed shortint2
'H'unsigned shortint2
'i'signed intint2/4
'I'unsigned intint2/4
'l'signed longint4/8
'L'unsigned longint4/8
'q'signed long longint8
'Q'unsigned long longint8
'f'floatfloat4
'd'doublefloat8

उपलब्ध कोड्स: array.typecodes → 'bBuhHiIlLqQfd'

बाइट्स से बनाना

arr1 = array.array('b', b'Hello')
print(arr1)  # array('b', [72, 101, 108, 108, 111])

मुख्य मेथड्स

buffer_info()

मेमोरी एड्रेस और लंबाई लौटाता है।

arr = array.array('i', [0, 1, 2, 3, 4])
print(arr.buffer_info())  # (address, 5)

count(x)

x के ऑकरेंसेज़ गिनता है।

arr.count(2)  # 1

extend(iterable)

सेम टाइप कोड वाले इटरेबल से एलिमेंट्स जोड़ता है।

arr = array.array('i', [0, 1, 2])
arr1 = array.array('i', [10, 20, 30])
arr.extend(arr1)
print(arr)  # array('i', [0, 1, 2, 10, 20, 30])

fromfile(file, n)

फाइल से n मशीन वैल्यूज़ पढ़कर ऐपेंड करता है।

# लिखें
with open('test.bin', 'wb') as f:
    f.write(b'Hello Python')

# पढ़ें
a = array.array('i')
with open('test.bin', 'rb') as f:
    a.fromfile(f, f.tell())
print(a)  # प्लेटफॉर्म-निर्भर इंटरप्रिटेशन

append(x) / fromlist(list)

a = array.array('i')
a.append(10)
a.fromlist([20, 30, 40, 50])
print(a)  # array('i', [10, 20, 30, 40, 50])

insert(i, x)

a.insert(2, 25)  # इंडेक्स 2 पर 25 डालें

pop([i]) / remove(x)

x = a.pop(2)   # इंडेक्स 2 हटाकर लौटाएं
a.remove(30)   # पहला 30 हटाएं

tofile(file)

सभी आइटम्स को बाइनरी फाइल में लिखें।

a = array.array('i', [10, 20, 30, 40, 50])
with open('test.bin', 'wb') as f:
    a.tofile(f)

array vs लिस्ट vs NumPy

विशेषताlistarrayNumPy
टाइप प्रतिबंधकोई नहींसिंगल C टाइपसिंगल dtype
मेमोरी दक्षताकमउच्चबहुत उच्च
गणित ऑपरेशन्सनहींसीमितव्यापक (वेक्टराइज़्ड)
बहुआयामीनेस्टेड लिस्ट्सनहींहाँ (ndarray)
डिपेंडेंसीबिल्ट-इनबिल्ट-इनबाहरी

कब उपयोग करें

  • बड़ी मात्रा में न्यूमेरिक डेटा जहां मेमोरी महत्वपूर्ण है।
  • बाइनरी फाइल I/O (स्ट्रक्चर्ड डेटा)।
  • C एक्सटेंशन्स/सिस्टम कॉल्स के साथ इंटरफेसिंग।
  • NumPy ओवरकिल हो जब (छोटे स्क्रिप्ट्स, कोई डिपेंडेंसी नहीं)।
  1. - पायथन में सरणी घुमाएं

    मान लीजिए हमारे पास एक सरणी A है। हमें इसे k चरणों से दाईं ओर घुमाना है। यदि सरणी A = [5, 7, 3, 6, 8, 1, 5, 4] है, और k = 3, तो आउटपुट [1,5,4,5,7,3,6,8] होगा। चरण इस तरह हैं: [4,5,7,3,6,8,1,5] [5,4,5,7,3,6,8,1] [1,5,4,5,7,3,6,8] इसे हल करने के लिए हम इन चरणों का पालन करेंगे। मान लें n सरणी का आक

  1. - Python में दिए गए NumPy ऐरे का डेटा प्रकार बदलना

    NumPy ऐरे का डेटा प्रकार बदलने के लिए हमारे पास astype(data_type) नामक एक मेथड है। यदि हमारे पास float64 प्रकार का NumPy ऐरे है, तो हम इसे int32 में बदल सकते हैं astype() मेथड को डेटा प्रकार देकर। हम dtype क्लास का उपयोग करके NumPy ऐरे के प्रकार की जांच कर सकते हैं। आइए नमूना NumPy ऐरे के डेटा प्रक

  1. - पायथन न्यूमेरिक टाइप्स

    पायथन में कुछ विशिष्ट न्यूमेरिक टाइप्स होते हैं। ये हैं: इंटीजर टाइप नंबर्स, फ्लोटिंग पॉइंट नंबर्स, कॉम्प्लेक्स नंबर्स। कॉम्प्लेक्स नंबर्स में दो भाग होते हैं: रियल और इमैज। कॉम्प्लेक्स नंबर्स को (a + bj) के रूप में दर्शाया जाता है।एक और फंक्शन है fraction। फ्रैक्शन रेशनल नंबर्स होल्ड करता है और डेस