Order a 6-element list ascending by repeatedly picking the smallest remaining value. Each iteration takes min(remaining), appends it to result, and removes it from remaining. The replay shows remaining shrinking and result growing one element at a time.

By hand

With NumPy

np.sort(a) returns a new sorted array. The original a is unchanged.

naive.py
values = [3, 1, 4, 1, 5, 9]
remaining = list(values)
result = []
for _ in range(len(values)):
    m = min(remaining)
    result.append(m)
    remaining.remove(m)
print('RESULT:', result)
library.py
import numpy as np

values = [3, 1, 4, 1, 5, 9]
a = np.array(values)
result = np.sort(a)
print('a: shape:', a.shape, 'dtype:', a.dtype, 'values:', a.tolist())
print('result: shape:', result.shape, 'dtype:', result.dtype, 'values:', result.tolist())
print('RESULT:', result.tolist())
a: shape: (6,) dtype: int64 values: [3, 1, 4, 1, 5, 9]
result: shape: (6,) dtype: int64 values: [1, 1, 3, 4, 5, 9]
RESULT: [1, 1, 3, 4, 5, 9]

Implementation notes

  • np.sort(a) returns a copya is unmodified. To sort in place use a.sort() (a method on the array), which modifies a and returns None.
  • Default sort order is ascending. For descending order use np.sort(a)[::-1] (sort first, then reverse the result).
  • This lesson teaches sort usage. The underlying algorithms (quicksort, mergesort, heapsort, timsort) are covered in the DSA track.
  • Shape, dtype, and values are shown explicitly here because ndarray.__repr__ output varies with NumPy version and print options.