1.1. ndarray.shape
shape attribute என்பது NumPy array-இன் அமைப்பை (structure) குறிக்கிறது. இது array-இல் எத்தனை rows மற்றும் columns உள்ளன என்பதை சொல்கிறது.
எந்த ஒரு array-யும் கையாளும்போது, அதன் shape attribute மூலம் array-இன் பரிமாணங்களை (dimensions) அறிந்து கொள்ளலாம். shape attribute-ல் உள்ள values array-இல் உள்ள rows மற்றும் columns எண்ணிக்கையை தருகின்றன.
Input:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print("Shape of array:", arr.shape)
மேலே கொடுக்கப்பட்டுள்ள code-இல், arr என்ற 2D array உருவாக்கப்பட்டுள்ளது. இந்த array-இன் shape attribute-ஐ பயன்படுத்தி array-இன் அமைப்பை அறியலாம்.
அதாவது, இதன் output:
Shape of array: (2, 3)
இந்த array-இல் 2 rows மற்றும் 3 columns உள்ளன என்று பொருள்.
இதன் மூலம், shape attribute ஒரு Numpy array-இன் கட்டமைப்பை (structure) முழுமையாக குறிக்க உதவுகிறது.
1.2. ndarray.ndim
ndim என்பது array-இன் பரிமாணங்களின் எண்ணிக்கையை (number of dimensions) குறிக்கிறது. NumPy array-களின் பரிமாணங்களை புரிந்து கொள்ள இது மிகவும் முக்கியமான attribute ஆகும்.
ஒரு array எத்தனை dimension-களை கொண்டுள்ளது என்பதை ndim attribute-ஐ பயன்படுத்தி எளிதில் அறிய முடியும். இதன் உதவியால், 1D, 2D அல்லது multi-dimensional array என்பதை நம்மால் அறிய முடியும்.
Input:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print("Number of dimensions:", arr.ndim)
மேலே கொடுக்கப்பட்டுள்ள code-இல், arr என்ற 2D array உருவாக்கப்பட்டுள்ளது. இந்த array-இன் ndim attribute-ஐ பயன்படுத்தி array-இன் பரிமாணங்களின் எண்ணிக்கையை (number of dimensions) அறியலாம்.
Output:
Number of dimensions: 2
2 என்று வரும்போது, இந்த array ஒரு 2D array என்று பொருள்.
இதன் மூலம், ndim attribute ஒரு Numpy array-இன் பரிமாணங்களின் எண்ணிக்கையை முழுமையாக அறிய உதவுகிறது.
1.3. numpy.itemsize
itemsize attribute ஒரு element-ஐ represent செய்ய memory-யில் எத்தனை bytes எடுக்கின்றது என்பதை அளிக்கிறது. இது, NumPy array-ல் உள்ள ஒவ்வொரு element-க்கும் memory allocation-ஐ எவ்வளவு எடுக்கும் என்பதை அறிய உதவுகிறது.
Input:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print("Item size of array:", arr.itemsize, "bytes")
இந்த code-இல், arr என்ற 1D array உருவாக்கப்பட்டுள்ளது, மற்றும் itemsize attribute-ஐ பயன்படுத்தி array-இன் ஒவ்வொரு element-ஐ memory-யில் represent செய்ய எவ்வளவு bytes எடுக்கின்றது என்பதை பார்க்கலாம்.
Output:
Item size of array: 8 bytes
8 bytes என்று வரும்போது, அந்த array-இல் உள்ள ஒவ்வொரு element-மும் 8 bytes அளவு memory-யைப் பயன்படுத்துகின்றது என்று பொருள்.
இதன் மூலம், itemsize attribute ஒரு Numpy array-இல் உள்ள ஒவ்வொரு element-இன் memory அளவை சரியாக அளக்க உதவுகிறது.
1.4. numpy.flags
flags attribute என்பது NumPy array-இன் memory layout-ஐ குறிக்கிறது. இது array-இன் உள்ளமைப்புகள் (properties) மற்றும் memory-இன் அடிப்படையில் array எவ்வாறு அமைக்கப்பட்டுள்ளது என்பதை விளக்குகிறது.
Input:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print("Flags of the array:\n", arr.flags)
இந்த code-இல், arr என்ற 1D array உருவாக்கப்பட்டுள்ளது, மற்றும் flags attribute-ஐ பயன்படுத்தி array-இன் memory layout பற்றிய தகவல்களை அறியலாம்.
Output:
Flags of the array: C_CONTIGUOUS : True F_CONTIGUOUS : False OWNDATA : True WRITEABLE : True ALIGNED : True WRITEBACKIFCOPY : False
இந்த flags attribute இவ்வாறு array-இன் memory layout பற்றிய விவரங்களை கொடுக்கிறது:
-
C_CONTIGUOUS: Array-இன் memory layout C-style (row-major) ஆக உள்ளது.
-
F_CONTIGUOUS: Array-இன் memory layout Fortran-style (column-major) ஆக இல்லை.
-
OWNDATA: Array-க்கு சொந்தமாக memory data இருக்கிறது.
-
WRITEABLE: Array-இல் உள்ள data மாற்றக்கூடியது.
-
ALIGNED: Data memory alignment சரியாக உள்ளது.
-
WRITEBACKIFCOPY: Write-back operation தேவைப்படும்போது False ஆகும்.
இதன் மூலம், flags attribute NumPy array-இன் memory layout மற்றும் array-இன் உள்ளமைப்புகள் பற்றிய முழு தகவல்களை வழங்குகிறது.
2. NUMPY − ARRAY CREATION ROUTINES
NumPy-ல் array-களை உருவாக்க பல்வேறு methods உள்ளன, அவற்றைப் பயன்படுத்தி data handling மற்றும் computation process-களை எளிதாக்கலாம். இப்போது, சில பொதுவாகப் பயன்படுத்தப்படும் array creation functions பற்றி விரிவாகப் பார்ப்போம்.
2.1. numpy.empty
numpy.empty( ) function ஒரு initialization values இல்லாத array-ஐ உருவாக்க பயன்படுகிறது. இதனால், array-இல் உள்ள values ஏதாவது முன்பே memory-யில் இருந்த random values ஆக இருக்கும். இதனால், memory-யில் உள்ள values reset செய்யப்படாமல், அந்த values array-இல் வரலாம்.
Input:
import numpy as np
empty_array = np.empty((2, 3))
print("Empty array:\n", empty_array)
இந்த code-இல், np.empty( ) function-ஐ பயன்படுத்தி 2 rows மற்றும் 3 columns கொண்ட ஒரு array உருவாக்கப்படுகிறது. இந்த array-இல் உள்ள values எல்லாம் எதுவும் initial values இல்லை. அதற்குப் பதிலாக, memory-யில் இருக்கும் junk values அல்லது random values array-இல் காணப்படும்.
Output:
Empty array: [[4.66651921e-310 0.00000000e+000 2.05833592e-312] [6.79038654e-313 2.14321575e-312 2.27053550e-312]]
இதில், array-இன் values எல்லாம் random values ஆக உள்ளன, ஏனெனில் numpy.empty( ) function memory-யில் ஏற்கனவே இருக்கும் data-ஐ பயன்படுத்தி array-ஐ உருவாக்குகிறது. இதனால், இந்த function array-ஐ மிக வேகமாக உருவாக்கும் ஆனால் initialization values கொடுக்காது.
-
numpy.empty( ) function பயன்படுத்தப்படும் போது array-இன் values எல்லாம் unpredictable ஆக இருக்கும்.
-
Performance அதிகம் தேவைப்படும் போது, initialization values-ஐ avoid செய்ய இந்த function மிகவும் உதவியாக இருக்கும்.
-
எப்போது values முக்கியமாக கருதப்படுகின்றனவோ, அப்போது numpy.zeros( ) அல்லது numpy.ones( ) போன்ற functions-ஐ பயன்படுத்துவது சிறந்தது.
இந்த function speed optimization தேவைப்படும் போது மிகவும் பயனுள்ளதாக இருக்கும், ஏனெனில் இது memory allocation மட்டும் செய்து, values-ஐ initialize செய்யாது.
2.2. numpy.zeros
zeros( ) function-ஐ பயன்படுத்தி, எல்லா elements-உம் 0 values கொண்ட ஒரு array-ஐ உருவாக்கலாம். இந்த function, array-இன் structure-ஐ (shape) user-defined shape-ஆக அமைத்து, அந்த shape-ஐ கொண்டு அனைத்து இடங்களிலும் 0 values-ஐ கொண்டு ஒரு array-ஐ return செய்யும்.
Input:
import numpy as np
zeros_array = np.zeros((2, 2))
print("Zeros array:\n", zeros_array)
Output:
Zeros array: [[0. 0.] [0. 0.]]
-
இங்கு np.zeros( ) function-ஐ பயன்படுத்தி, 2 rows மற்றும் 2 columns கொண்ட ஒரு array உருவாக்கப்பட்டுள்ளது. இந்த array-இன் எல்லா elements-ம் 0 values கொண்டவை.
-
numpy.zeros( ) function memory-யை allocate செய்து, எல்லா elements-க்கும் 0 values கொடுக்கும்.
-
இது, array-ஐ முழுமையாக 0 values கொண்டு initialize செய்ய விரும்பும் போது பயன்படும்.
-
zeros( ) function data initialization தேவையுள்ள போது மிகவும் பயனுள்ளதாக இருக்கும், ஏனெனில் இது memory-யை efficient-ஆக நிரப்பி array-ஐ உருவாக்குகிறது.
2.3. numpy.ones
ones( ) function-ஐ பயன்படுத்தி, எல்லா elements-உம் 1 values கொண்ட ஒரு array-ஐ உருவாக்கலாம். இந்த function, array-இன் structure-ஐ (shape) user-defined shape-ஆக அமைத்து, அந்த shape-ஐ கொண்டு அனைத்து இடங்களிலும் 1 values-ஐ கொண்டு ஒரு array-ஐ return செய்யும்.
Input:
import numpy as np
ones_array = np.ones((3, 3))
print("Ones array:\n", ones_array)
Output:
Ones array: [[1. 1. 1.] [1. 1. 1.] [1. 1. 1.]]
-
இங்கு np.ones( ) function-ஐ பயன்படுத்தி, 3 rows மற்றும் 3 columns கொண்ட ஒரு array உருவாக்கப்பட்டுள்ளது.
-
இந்த array-இன் எல்லா elements-ம் 1 values கொண்டவை.
இதன் மூலம், zeros( ) மற்றும் ones( ) functions மிகவும் பயனுள்ளதாக இருக்கும், ஏனெனில் அவை predictable values கொண்ட array-களை உருவாக்குகின்றன, computation-ஐ எளிதாக்குகின்றன.