Bird
Raised Fist0
NumPydata~5 mins

Image as array concept in NumPy

Choose your learning style10 modes available
Introduction

We use arrays to represent images because computers store images as numbers. This helps us easily change or analyze images using math.

When you want to edit or filter a photo on your computer.
When you need to count colors or shapes in an image.
When building apps that recognize faces or objects.
When converting images to black and white or changing brightness.
When you want to create animations or effects by changing pixels.
Syntax
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).

Examples
This shows an image with no pixels but 3 color channels.
NumPy
import numpy as np

# Empty image (0 height and width)
empty_image = np.array([]).reshape(0, 0, 3)
print(empty_image.shape)
An image with just one red pixel.
NumPy
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)
All pixels are white because all color values are 255.
NumPy
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)
Sample Program

This program creates a small 3x3 image with colors, prints it, changes the middle pixel to black, and prints the updated image.

NumPy
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)
OutputSuccess
Important Notes

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.

Summary

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

(1/5)
1. What does each element in a NumPy array representing an image usually stand for?
easy
A. A pixel's color value
B. The image file size
C. The image format type
D. The number of images

Solution

  1. Step 1: Understand image representation in arrays

    Images are stored as arrays where each element corresponds to a pixel's color information.
  2. Step 2: Identify what each element represents

    Each element holds the color value (like red, green, or blue intensity) for that pixel.
  3. Final Answer:

    A pixel's color value -> Option A
  4. Quick Check:

    Pixel color = element value [OK]
Hint: Pixels map to array elements holding color values [OK]
Common Mistakes:
  • Confusing pixel values with image size
  • Thinking array stores image format
  • Assuming array length equals number of images
2. Which NumPy code correctly creates a 3x3 image array with 3 color channels (RGB)?
easy
A. np.zeros((3, 3, 3))
B. np.zeros([3, 3])
C. np.zeros(3, 3, 3)
D. np.zeros((3, 3))

Solution

  1. Step 1: Understand array shape for RGB image

    An RGB image array shape is (height, width, 3) where 3 is for color channels.
  2. Step 2: Check correct NumPy syntax for shape

    NumPy expects shape as a tuple inside zeros(), so (3, 3, 3) is correct.
  3. Final Answer:

    np.zeros((3, 3, 3)) -> Option A
  4. Quick Check:

    Shape tuple with 3 channels = np.zeros((3,3,3)) [OK]
Hint: Use tuple shape with 3 for RGB channels [OK]
Common Mistakes:
  • Passing shape as separate arguments instead of tuple
  • Missing the third dimension for color channels
  • Using list instead of tuple for shape
3. What is the output shape of this code?
import numpy as np
img = np.ones((4, 5, 3))
print(img.shape)
medium
A. (5, 4, 3)
B. (4, 5, 3)
C. (4, 5)
D. (3, 4, 5)

Solution

  1. Step 1: Analyze the array creation

    np.ones((4, 5, 3)) creates an array with shape (4, 5, 3).
  2. Step 2: Understand shape attribute output

    Printing img.shape returns the tuple describing the array dimensions exactly as given.
  3. Final Answer:

    (4, 5, 3) -> Option B
  4. Quick Check:

    Shape matches input tuple (4,5,3) [OK]
Hint: Shape prints exactly as array was created [OK]
Common Mistakes:
  • Mixing up width and height order
  • Ignoring the color channel dimension
  • Assuming shape returns total size
4. Find the error in this code that tries to create a 2x2 RGB image array:
import numpy as np
img = np.zeros(2, 2, 3)
print(img.shape)
medium
A. np.zeros cannot create 3D arrays
B. Shape dimensions are too large
C. Missing tuple for shape in np.zeros
D. print statement syntax is wrong

Solution

  1. Step 1: Check np.zeros syntax

    np.zeros expects a single shape argument as a tuple, but here three separate arguments are given.
  2. Step 2: Identify correct shape input

    Shape should be passed as np.zeros((2, 2, 3)) with parentheses around the shape tuple.
  3. Final Answer:

    Missing tuple for shape in np.zeros -> Option C
  4. Quick Check:

    Shape must be tuple in np.zeros() [OK]
Hint: Always pass shape as one tuple to np.zeros [OK]
Common Mistakes:
  • Passing multiple arguments instead of one tuple
  • Assuming np.zeros can't create 3D arrays
  • Incorrect print syntax
5. You have a 2x2 image array with RGB values:
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)?
hard
A. img[0, 0] = [255, 255, 255]
B. img[2, 2] = [255, 255, 255]
C. img[1][1][3] = 255
D. img[1, 1] = [255, 255, 255]

Solution

  1. Step 1: Identify pixel position in array

    Bottom-right pixel in a 2x2 array is at index [1, 1] (zero-based indexing).
  2. Step 2: Assign new RGB values correctly

    Assign the list [255, 255, 255] to img[1, 1] to set it to white.
  3. Final Answer:

    img[1, 1] = [255, 255, 255] -> Option D
  4. Quick Check:

    Index [1,1] changes bottom-right pixel [OK]
Hint: Use zero-based index for pixel, assign RGB list [OK]
Common Mistakes:
  • Using out-of-range indices like [2, 2]
  • Trying to assign to a non-existing channel index
  • Changing wrong pixel like top-left
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