Bird
Raised Fist0
NumPydata~5 mins

ndarray as the core data structure in NumPy

Choose your learning style10 modes available
Introduction

The ndarray is the main way to store and work with numbers in numpy. It helps you handle many numbers at once, like a list but faster and smarter.

When you want to store a table of numbers, like a spreadsheet.
When you need to do math on many numbers quickly, like adding or multiplying all at once.
When you want to work with images or sound data that are stored as grids of numbers.
When you want to organize data in multiple dimensions, like rows and columns or more.
When you want to use numpy functions that expect data in a fast, organized way.
Syntax
NumPy
import numpy as np

# Create a 1D ndarray
array_1d = np.array([1, 2, 3, 4])

# Create a 2D ndarray
array_2d = np.array([[1, 2], [3, 4]])

An ndarray can have any number of dimensions (1D, 2D, 3D, etc.).

You create an ndarray by passing a list or list of lists to np.array().

Examples
This shows an empty array with no elements and shape (0,).
NumPy
import numpy as np

# Empty array (0 elements)
empty_array = np.array([])
print(empty_array)
print(empty_array.shape)
An array with a single number has shape (1,).
NumPy
import numpy as np

# Array with one element
one_element_array = np.array([42])
print(one_element_array)
print(one_element_array.shape)
This is a 2D array with 1 row and 3 columns, shape (1, 3).
NumPy
import numpy as np

# 2D array with one row
one_row_array = np.array([[10, 20, 30]])
print(one_row_array)
print(one_row_array.shape)
This is a 2D array with 3 rows and 1 column, shape (3, 1).
NumPy
import numpy as np

# 2D array with one column
one_column_array = np.array([[5], [15], [25]])
print(one_column_array)
print(one_column_array.shape)
Sample Program

This program creates a 2D ndarray, prints it, then shows how to add and multiply all elements easily.

NumPy
import numpy as np

# Create a 2D ndarray representing a small table of numbers
numbers_table = np.array([[1, 2, 3], [4, 5, 6]])

print("Original ndarray:")
print(numbers_table)
print("Shape:", numbers_table.shape)

# Add 10 to every element
numbers_plus_ten = numbers_table + 10
print("\nAfter adding 10 to each element:")
print(numbers_plus_ten)

# Multiply every element by 2
numbers_times_two = numbers_table * 2
print("\nAfter multiplying each element by 2:")
print(numbers_times_two)
OutputSuccess
Important Notes

Time complexity: Accessing or modifying elements is very fast, usually O(1) per element.

Space complexity: Uses memory proportional to the number of elements stored.

Common mistake: Confusing Python lists with ndarrays. ndarrays support fast math operations on all elements at once, unlike lists.

Use ndarrays when you need fast, efficient math on large sets of numbers. Use lists if you need more flexible data types or structures.

Summary

ndarray is numpy's main way to store numbers in one or more dimensions.

It lets you do math on many numbers quickly and easily.

You create an ndarray by passing lists or nested lists to np.array().

Practice

(1/5)
1.

What is the main purpose of a numpy ndarray?

easy
A. To display images on screen
B. To create text documents
C. To store numbers in one or more dimensions for fast math operations
D. To connect to databases

Solution

  1. Step 1: Understand what ndarray stores

    ndarray is designed to hold numbers arranged in rows and columns or more dimensions.
  2. Step 2: Recognize its use for math

    It allows fast math operations on many numbers at once, unlike regular Python lists.
  3. Final Answer:

    To store numbers in one or more dimensions for fast math operations -> Option C
  4. Quick Check:

    ndarray = fast number storage [OK]
Hint: ndarray = fast multi-dimensional number storage [OK]
Common Mistakes:
  • Thinking ndarray stores text or images
  • Confusing ndarray with database tools
  • Assuming ndarray is for display only
2.

Which of the following is the correct way to create a 1D ndarray from a Python list [1, 2, 3]?

import numpy as np
# Which line is correct?
easy
A. arr = np.array([1, 2, 3])
B. arr = np.ndarray([1, 2, 3])
C. arr = np.array(1, 2, 3)
D. arr = np.array{1, 2, 3}

Solution

  1. Step 1: Recall correct syntax for np.array()

    np.array() takes a list or nested lists inside parentheses.
  2. Step 2: Check each option

    arr = np.array([1, 2, 3]) uses correct syntax with square brackets inside parentheses. Others have wrong function calls or braces.
  3. Final Answer:

    arr = np.array([1, 2, 3]) -> Option A
  4. Quick Check:

    np.array(list) syntax = correct [OK]
Hint: Use np.array() with list inside parentheses [OK]
Common Mistakes:
  • Using np.ndarray() directly without parameters
  • Passing multiple arguments instead of one list
  • Using curly braces {} instead of []
3.

What will be the output of the following code?

import numpy as np
arr = np.array([[1, 2], [3, 4]])
print(arr.shape)
medium
A. (4,)
B. (2, 2)
C. (1, 4)
D. (2,)

Solution

  1. Step 1: Understand the array shape

    The array has 2 rows and 2 columns, so shape is (2, 2).
  2. Step 2: Check print output

    arr.shape returns a tuple with dimensions, so output is (2, 2).
  3. Final Answer:

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

    2 rows and 2 columns = (2, 2) [OK]
Hint: Shape shows rows and columns as tuple [OK]
Common Mistakes:
  • Confusing shape with total elements
  • Expecting a list instead of tuple
  • Mixing up rows and columns count
4.

Find the error in this code snippet:

import numpy as np
arr = np.array([1, 2, 3])
print(arr[3])
medium
A. SyntaxError due to wrong print statement
B. No error, prints 3
C. TypeError because arr is not a list
D. IndexError because index 3 is out of bounds

Solution

  1. Step 1: Check array length and indexing

    arr has elements at indices 0, 1, 2 only. Index 3 is out of range.
  2. Step 2: Understand error type

    Accessing arr[3] causes IndexError because index is invalid.
  3. Final Answer:

    IndexError because index 3 is out of bounds -> Option D
  4. Quick Check:

    Index out of range = IndexError [OK]
Hint: Check array length before indexing [OK]
Common Mistakes:
  • Thinking arr[3] returns last element
  • Confusing IndexError with SyntaxError
  • Assuming numpy arrays allow out-of-range access
5.

You have a nested list [[1, 2], [3, 4], [5, 6]]. How do you create a numpy ndarray and then get the sum of all elements?

import numpy as np
nested_list = [[1, 2], [3, 4], [5, 6]]
# Fill in the blanks
arr = np.array(nested_list)
total = _____
print(total)
hard
A. arr.sum()
B. sum(arr)
C. arr.add()
D. np.sum(arr, axis=1)

Solution

  1. Step 1: Create ndarray from nested list

    np.array(nested_list) creates a 2D array with shape (3, 2).
  2. Step 2: Use ndarray method to sum all elements

    arr.sum() returns sum of all elements in the array.
  3. Final Answer:

    arr.sum() -> Option A
  4. Quick Check:

    Use arr.sum() for total sum [OK]
Hint: Use arr.sum() to sum all elements [OK]
Common Mistakes:
  • Using Python sum() which sums rows, not elements
  • Using arr.add() which does not exist
  • Using np.sum with axis=1 sums rows, not total
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