We use arrays to represent images because computers store images as numbers. This helps us easily change or analyze images using math.
Image as array concept in NumPy
import numpy as np # Example: Create a simple 3x3 image with 3 color channels (RGB) image_array = np.array([ [[255, 0, 0], [0, 255, 0], [0, 0, 255]], [[255, 255, 0], [0, 255, 255], [255, 0, 255]], [[0, 0, 0], [127, 127, 127], [255, 255, 255]] ])
An image array is usually 3D: height x width x color channels.
Each pixel has values for colors, often Red, Green, and Blue (RGB).
import numpy as np # Empty image (0 height and width) empty_image = np.array([]).reshape(0, 0, 3) print(empty_image.shape)
import numpy as np # Image with one pixel, red color one_pixel_image = np.array([[[255, 0, 0]]]) print(one_pixel_image.shape) print(one_pixel_image)
import numpy as np # Image with 2 rows and 2 columns, all pixels white white_image = np.ones((2, 2, 3), dtype=int) * 255 print(white_image)
This program creates a small 3x3 image with colors, prints it, changes the middle pixel to black, and prints the updated image.
import numpy as np # Create a 3x3 image with RGB colors image_array = np.array([ [[255, 0, 0], [0, 255, 0], [0, 0, 255]], [[255, 255, 0], [0, 255, 255], [255, 0, 255]], [[0, 0, 0], [127, 127, 127], [255, 255, 255]] ]) print("Original image array shape:", image_array.shape) print("Original image array data:") print(image_array) # Change the middle pixel to black image_array[1, 1] = [0, 0, 0] print("\nImage array after changing middle pixel to black:") print(image_array)
Time complexity to access or change one pixel is O(1) because arrays allow direct access.
Space complexity depends on image size: height x width x color channels.
Common mistake: Mixing up the order of dimensions (height, width, channels) can cause wrong results.
Use arrays for images when you want fast, easy pixel-level changes or analysis.
Images are stored as arrays of numbers representing pixels and colors.
Each pixel has color values, usually Red, Green, and Blue.
Using arrays lets us easily view, change, or analyze images with code.
Practice
Solution
Step 1: Understand image representation in arrays
Images are stored as arrays where each element corresponds to a pixel's color information.Step 2: Identify what each element represents
Each element holds the color value (like red, green, or blue intensity) for that pixel.Final Answer:
A pixel's color value -> Option AQuick Check:
Pixel color = element value [OK]
- Confusing pixel values with image size
- Thinking array stores image format
- Assuming array length equals number of images
Solution
Step 1: Understand array shape for RGB image
An RGB image array shape is (height, width, 3) where 3 is for color channels.Step 2: Check correct NumPy syntax for shape
NumPy expects shape as a tuple inside zeros(), so (3, 3, 3) is correct.Final Answer:
np.zeros((3, 3, 3)) -> Option AQuick Check:
Shape tuple with 3 channels = np.zeros((3,3,3)) [OK]
- Passing shape as separate arguments instead of tuple
- Missing the third dimension for color channels
- Using list instead of tuple for shape
import numpy as np img = np.ones((4, 5, 3)) print(img.shape)
Solution
Step 1: Analyze the array creation
np.ones((4, 5, 3)) creates an array with shape (4, 5, 3).Step 2: Understand shape attribute output
Printing img.shape returns the tuple describing the array dimensions exactly as given.Final Answer:
(4, 5, 3) -> Option BQuick Check:
Shape matches input tuple (4,5,3) [OK]
- Mixing up width and height order
- Ignoring the color channel dimension
- Assuming shape returns total size
import numpy as np img = np.zeros(2, 2, 3) print(img.shape)
Solution
Step 1: Check np.zeros syntax
np.zeros expects a single shape argument as a tuple, but here three separate arguments are given.Step 2: Identify correct shape input
Shape should be passed as np.zeros((2, 2, 3)) with parentheses around the shape tuple.Final Answer:
Missing tuple for shape in np.zeros -> Option CQuick Check:
Shape must be tuple in np.zeros() [OK]
- Passing multiple arguments instead of one tuple
- Assuming np.zeros can't create 3D arrays
- Incorrect print syntax
import numpy as np
img = np.array([[[255, 0, 0], [0, 255, 0]],
[[0, 0, 255], [255, 255, 0]]])
How do you change the bottom-right pixel to white (255, 255, 255)?Solution
Step 1: Identify pixel position in array
Bottom-right pixel in a 2x2 array is at index [1, 1] (zero-based indexing).Step 2: Assign new RGB values correctly
Assign the list [255, 255, 255] to img[1, 1] to set it to white.Final Answer:
img[1, 1] = [255, 255, 255] -> Option DQuick Check:
Index [1,1] changes bottom-right pixel [OK]
- Using out-of-range indices like [2, 2]
- Trying to assign to a non-existing channel index
- Changing wrong pixel like top-left
Ready to prove it?
Pass the test and this pattern moves unknown
