Bird
Raised Fist0
NumPydata~10 mins

Array attributes (shape, dtype, ndim, size) in NumPy - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Array attributes (shape, dtype, ndim, size)
Create numpy array
↓
Access .shape
↓
Access .dtype
↓
Access .ndim
↓
Access .size
↓
Done
Create a numpy array, then check its shape, data type, number of dimensions, and total size step-by-step.
Execution Sample
NumPy
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.shape)
print(arr.dtype)
print(arr.ndim)
print(arr.size)
Create a 2D numpy array and print its shape, data type, number of dimensions, and total number of elements.
Execution Table
StepActionExpression EvaluatedResult
1Create arrayarr = np.array([[1, 2, 3], [4, 5, 6]])[[1 2 3] [4 5 6]]
2Access shapearr.shape(2, 3)
3Access dtypearr.dtypeint32
4Access ndimarr.ndim2
5Access sizearr.size6
6EndNo more attributes to accessExecution stops
💡 All four attributes accessed; execution ends.
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3After Step 4After Step 5
arrundefined[[1 2 3] [4 5 6]][[1 2 3] [4 5 6]][[1 2 3] [4 5 6]][[1 2 3] [4 5 6]][[1 2 3] [4 5 6]]
arr.shapeundefinedundefined(2, 3)(2, 3)(2, 3)(2, 3)
arr.dtypeundefinedundefinedundefinedint32int32int32
arr.ndimundefinedundefinedundefinedundefined22
arr.sizeundefinedundefinedundefinedundefinedundefined6
Key Moments - 3 Insights
Why does arr.shape return a tuple like (2, 3)?
Because arr has 2 rows and 3 columns, shape shows the size in each dimension as a tuple. See execution_table step 2.
What does arr.dtype tell us about the array?
It tells the type of data stored in the array elements, here int32 means 32-bit integers. See execution_table step 3.
Why is arr.ndim equal to 2?
Because the array has two dimensions: rows and columns. See execution_table step 4.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the value of arr.size at step 5?
A2
B6
C(2, 3)
Dint64
💡 Hint
Check the 'Result' column at step 5 in the execution_table.
At which step does arr.dtype get evaluated?
AStep 2
BStep 4
CStep 3
DStep 5
💡 Hint
Look for 'Access dtype' in the 'Action' column of execution_table.
If the array was 3D, which attribute would show the number of dimensions?
Aarr.ndim
Barr.shape
Carr.size
Darr.dtype
💡 Hint
Check the meaning of arr.ndim in key_moments and execution_table step 4.
Concept Snapshot
Array attributes in numpy:
- shape: tuple showing size in each dimension
- dtype: data type of elements
- ndim: number of dimensions
- size: total number of elements
Use these to understand array structure quickly.
Full Transcript
We create a numpy array with two rows and three columns. Then we check its shape, which is (2, 3), meaning 2 rows and 3 columns. Next, we look at dtype, which tells us the data type of the elements, here int32. Then ndim shows the number of dimensions, which is 2 for this 2D array. Finally, size gives the total number of elements, which is 6. This helps us understand the array's structure and contents clearly.

Practice

(1/5)
1. Which numpy attribute tells you the total number of elements in an array?
easy
A. size
B. shape
C. ndim
D. dtype

Solution

  1. Step 1: Understand the meaning of each attribute

    shape shows dimensions, dtype shows data type, ndim shows number of dimensions, and size shows total elements.
  2. Step 2: Identify the attribute for total elements

    The attribute size gives the total number of elements in the array.
  3. Final Answer:

    size -> Option A
  4. Quick Check:

    Total elements = size [OK]
Hint: Total elements? Use size attribute [OK]
Common Mistakes:
  • Confusing shape with total elements
  • Thinking ndim gives total elements
  • Mixing dtype with size
2. Which of the following is the correct way to get the number of dimensions of a numpy array arr?
easy
A. arr.size()
B. arr.ndim
C. arr.shape()
D. arr.dtype

Solution

  1. Step 1: Recall attribute vs method syntax in numpy

    Attributes like ndim and dtype are accessed without parentheses, methods like size() do not exist.
  2. Step 2: Identify correct attribute for number of dimensions

    arr.ndim gives the number of dimensions directly.
  3. Final Answer:

    arr.ndim -> Option B
  4. Quick Check:

    Number of dimensions = arr.ndim [OK]
Hint: Use attribute without () for ndim, size, dtype [OK]
Common Mistakes:
  • Using parentheses with attributes
  • Confusing shape with ndim
  • Trying to call size() as method
3. Given the code:
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?
medium
A. (2, 3) float64 2 6
B. (3, 2) int64 2 6
C. (2, 3) int64 2 6
D. (2, 3) int32 2 6

Solution

  1. 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.
  2. Step 2: Check number of dimensions and total size

    It is a 2D array, so ndim = 2. Total elements = 2*3 = 6.
  3. Final Answer:

    (2, 3) int64 2 6 -> Option C
  4. Quick Check:

    shape=(2,3), dtype=int64, ndim=2, size=6 [OK]
Hint: Shape = rows x columns, size = product of shape [OK]
Common Mistakes:
  • Mixing rows and columns in shape
  • Assuming dtype is int32 by default
  • Confusing ndim with size
4. What is wrong with this code snippet?
import numpy as np
arr = np.array([1, 2, 3])
print(arr.shape())
medium
A. print cannot display tuples
B. arr is not defined
C. shape returns a number, not a tuple
D. shape is an attribute, not a method; remove parentheses

Solution

  1. Step 1: Identify usage of shape

    shape is an attribute, so it should be accessed without parentheses.
  2. Step 2: Correct the code

    Change arr.shape() to arr.shape to fix the error.
  3. Final Answer:

    shape is an attribute, not a method; remove parentheses -> Option D
  4. Quick Check:

    Attributes have no () [OK]
Hint: Attributes like shape have no () [OK]
Common Mistakes:
  • Using parentheses with attributes
  • Thinking shape returns a single number
  • Assuming print can't show tuples
5. You have a numpy array arr with shape (4, 5, 6). Which attribute would you use to find the total number of elements, and what is that number?
hard
A. arr.size, 120
B. arr.ndim, 3
C. arr.shape, (4, 5, 6)
D. arr.dtype, depends on data

Solution

  1. Step 1: Understand the attributes

    size gives total elements, ndim gives number of dimensions, shape gives dimensions, dtype gives data type.
  2. Step 2: Calculate total elements from shape

    Total elements = 4 * 5 * 6 = 120, so arr.size = 120.
  3. Final Answer:

    arr.size, 120 -> Option A
  4. Quick Check:

    Total elements = product of shape = 120 [OK]
Hint: Multiply shape dimensions or use size [OK]
Common Mistakes:
  • Confusing ndim with total elements
  • Using shape instead of size
  • Ignoring that dtype is unrelated to size
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard