Array attributes help us understand the structure and type of data inside an array. They tell us the shape, data type, number of dimensions, and total size of the array.
Array attributes (shape, dtype, ndim, size) in NumPy
import numpy as np array = np.array([...]) # Get the shape (rows, columns, ...) array.shape # Get the data type of elements array.dtype # Get the number of dimensions array.ndim # Get the total number of elements array.size
shape returns a tuple showing the size in each dimension.
dtype tells the type of data stored, like int32 or float64.
import numpy as np empty_array = np.array([]) print(empty_array.shape) # (0,) means empty 1D array print(empty_array.size) # 0 elements
import numpy as np one_element_array = np.array([42]) print(one_element_array.shape) # (1,) means 1 element in 1D print(one_element_array.ndim) # 1 dimension print(one_element_array.size) # 1 element
import numpy as np matrix = np.array([[1, 2, 3], [4, 5, 6]]) print(matrix.shape) # (2, 3) means 2 rows and 3 columns print(matrix.ndim) # 2 dimensions print(matrix.size) # 6 elements total
import numpy as np float_array = np.array([1.5, 2.5, 3.5]) print(float_array.dtype) # float64 means floating point numbers
This program creates a 2D array and prints its shape, data type, number of dimensions, and total size.
import numpy as np # Create a 2D array (matrix) number_matrix = np.array([[10, 20, 30], [40, 50, 60]]) print("Array:") print(number_matrix) # Print array attributes print("Shape of array:", number_matrix.shape) print("Data type of elements:", number_matrix.dtype) print("Number of dimensions:", number_matrix.ndim) print("Total number of elements:", number_matrix.size)
Time complexity: Accessing these attributes is very fast, O(1), because they are stored properties.
Space complexity: No extra space is used when accessing these attributes.
Common mistake: Confusing shape with size. Shape shows dimensions, size shows total elements.
Use shape to understand layout, size to know total data points, dtype to check data type, and ndim to know how many dimensions your data has.
Array attributes help you understand your data's structure and type.
shape shows the size in each dimension.
dtype tells the type of data stored.
ndim gives the number of dimensions.
size gives the total number of elements.
Practice
numpy attribute tells you the total number of elements in an array?Solution
Step 1: Understand the meaning of each attribute
shapeshows dimensions,dtypeshows data type,ndimshows number of dimensions, andsizeshows total elements.Step 2: Identify the attribute for total elements
The attributesizegives the total number of elements in the array.Final Answer:
size -> Option AQuick Check:
Total elements = size [OK]
size attribute [OK]- Confusing
shapewith total elements - Thinking
ndimgives total elements - Mixing
dtypewith size
arr?Solution
Step 1: Recall attribute vs method syntax in numpy
Attributes likendimanddtypeare accessed without parentheses, methods likesize()do not exist.Step 2: Identify correct attribute for number of dimensions
arr.ndimgives the number of dimensions directly.Final Answer:
arr.ndim -> Option BQuick Check:
Number of dimensions = arr.ndim [OK]
- Using parentheses with attributes
- Confusing
shapewithndim - Trying to call
size()as method
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) print(arr.shape, arr.dtype, arr.ndim, arr.size)
What is the output?
Solution
Step 1: Analyze the array shape and data type
The array has 2 rows and 3 columns, so shape is (2, 3). The default integer type on many systems is int64.Step 2: Check number of dimensions and total size
It is a 2D array, so ndim = 2. Total elements = 2*3 = 6.Final Answer:
(2, 3) int64 2 6 -> Option CQuick Check:
shape=(2,3), dtype=int64, ndim=2, size=6 [OK]
- Mixing rows and columns in shape
- Assuming dtype is int32 by default
- Confusing ndim with size
import numpy as np arr = np.array([1, 2, 3]) print(arr.shape())
Solution
Step 1: Identify usage of
shapeshapeis an attribute, so it should be accessed without parentheses.Step 2: Correct the code
Changearr.shape()toarr.shapeto fix the error.Final Answer:
shapeis an attribute, not a method; remove parentheses -> Option DQuick Check:
Attributes have no () [OK]
- Using parentheses with attributes
- Thinking shape returns a single number
- Assuming print can't show tuples
arr with shape (4, 5, 6). Which attribute would you use to find the total number of elements, and what is that number?Solution
Step 1: Understand the attributes
sizegives total elements,ndimgives number of dimensions,shapegives dimensions,dtypegives data type.Step 2: Calculate total elements from shape
Total elements = 4 * 5 * 6 = 120, soarr.size= 120.Final Answer:
arr.size, 120 -> Option AQuick Check:
Total elements = product of shape = 120 [OK]
size [OK]- Confusing
ndimwith total elements - Using
shapeinstead ofsize - Ignoring that
dtypeis unrelated to size
Ready to prove it?
Pass the test and this pattern moves unknown
