एक 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'>