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

Numpy . में Flatten () और Ravel () के बीच अंतर

एक numpy array बनाने के कई तरीके हैं। Numpy एक ndarray को 1Darray में बदलने के दो अलग-अलग प्रकार प्रदान करता है:वह है फ़्लैटन () विधि का उपयोग करना और दूसरा ravel () विधि का उपयोग करना।

उदाहरण

#Import required library, numpy
import numpy as np
#create an array from a list
arr = np.array( [ (2, 7, 3, 4), (5, 6, 9, 1)])
#flatten_output
print(arr.flatten())
#ravel_output
print(arr.ravel())

आउटपुट

[2 7 3 4 5 6 9 1]
[2 7 3 4 5 6 9 1]

अब ऊपर हम देख सकते हैं कि दोनों फ़ंक्शन एक ही सूची लौटाते हैं, इसलिए सवाल उठता है कि एक ही कार्य के लिए दो तरीके क्यों हैं?

फ़्लैटन () और रवेल () विधि के बीच मुख्य अंतर नीचे दिए गए हैं।

arr.ravel()

  • मूल सरणी का एकमात्र संदर्भ लौटाएं

  • उपरोक्त सरणी (गिरफ्तारी) को संशोधित करने पर, हम देख सकते हैं कि मूल सरणी का मान भी बदल जाता है।

  • क्योंकि रवेल विधि किसी भी मेमोरी पर कब्जा कर लेती है, रवेल फ़्लैटन की तुलना में तेज़ है ()

  • रवेल एक पुस्तकालय स्तर का कार्य है

arr.flatten()

  • सरणी (गिरफ्तारी) की एक मूल प्रति देता है।

  • उपरोक्त सरणी (गिरफ्तारी) को संशोधित करने पर, मूल सरणी का मान नहीं बदलेगा।

  • चूँकि फ़्लैटन () मेमोरी पर कब्जा कर लेता है, फ़्लैटन () रवेल () की तुलना में थोड़ा धीमा होता है ()

  • यह एक ndarray ऑब्जेक्ट की एक विधि है।

उदाहरण

#Import required library, numpy
import numpy as np
# Create a numpy array, arr
arr = np.array([(1,2,3,4),(3,1,4,2)])
# Let's print the array arr
print ("Original array:\n ", arr)
#print(arr)
# To check the dimension of array (dimension =2) and type is numpy.ndarray
print ("Dimension of original array: %d \n Type of original array: %s" % (arr.ndim,type(arr)))
print("\nOutput from ravel method: \n")
# Convert nd array to 1D array
b_arr = arr.ravel()
# Ravel only passes a view of original array to array 'b_arr'
print(b_arr)
b_arr[0]=1000
print(b_arr)
# Note here that value of original array 'arr' at also arr[0][0] becomes 1000
print(arr)
# Just to check the dimension i.e. 1 and type is same numpy.ndarray
print ("Dimension of array: %d \n Type of array: %s" % (b_arr.ndim,type(b_arr)))
print("\nOutput from flatten method: \n")
# Convert nd array to 1D array
c_arr = arr.flatten()
# Flatten passes copy of original array to 'c_arr'
print(c_arr)
c_arr[0]=0
print(c_arr)
# Note that by changing value of c_arr there is no affect on value of original array 'arr'
print(arr)
print ("Dimension of array->%d \n Type of array->%s" % (c_arr.ndim,type(c_arr)))

आउटपुट

Original array:
[[1 2 3 4]
[3 1 4 2]]
Dimension of original array: 2
Type of original array: <class 'numpy.ndarray'>
Output from ravel method:
[1 2 3 4 3 1 4 2]
[1000 2 3 4 3 1 4 2]
[[1000 2 3 4]
[ 3 1 4 2]]
Dimension of array: 1
Type of array: <class 'numpy.ndarray'>
Output from flatten method:
[1000 2 3 4 3 1 4 2]
[0 2 3 4 3 1 4 2]
[[1000 2 3 4]
[ 3 1 4 2]]
Dimension of array->1
Type of array-><class 'numpy.ndarray'>

  1. विंडोज एक्सपी और विंडोज 7 के बीच शीर्ष 10 अंतर

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

  1. क्रोमियम और क्रोम के बीच शीर्ष 12 अंतर

    ठीक है, निश्चित रूप से, बाद वाला शब्द आपके लिए स्पष्ट परिचित होगा, पूर्व ने आपके ज्ञान को ज्यादा प्रभावित नहीं किया होगा। उम्मीद है कि आपने क्रोमियम के बारे में एक या दो बार सुना होगा, लेकिन स्पष्ट संभावना यह है कि लगभग 60% लोगों ने इस शब्द को एक बार भी नहीं सुना होगा। और शेष 40% तकनीक-प्रेमी लोगों

  1. एग और काहिरा के बीच माटप्लोटलिब बैकएंड अंतर

    रेंडरर फ़ाइल प्रकार विवरण AGG Png रास्टर ग्राफ़िक्स - एंटी-ग्रेन ज्योमेट्री इंजन का उपयोग करने वाली उच्च-गुणवत्ता वाली छवियां काहिरा png, ps, pdf, svg रास्टर या वेक्टर ग्राफिक्स - काहिरा पुस्तकालय का उपयोग कर कदम आकृति का आकार सेट करें और सबप्लॉट के बीच और आसपास पैडिंग समायोजित करें। बैकएंड न