3.3. Array Reduction

3.3.1. Sum

  • a.sum()

  • np.sum()

  • np.nansum()

import numpy as np


a = np.array([[1.1, 2.2, 3.3],
              [4.4, 5.5, 6.6]])

a.sum()
# 23.1

a.sum(axis=0)
# array([5.5, 7.7, 9.9])

a.sum(axis=1)
# array([ 6.6, 16.5])

np.sum(a)
# 23.1
import numpy as np


 a = np.array([[1.1, 2.2, 3.3],
               [4.4, np.nan, 6.6]])

a.sum()
# nan

np.sum(a)
# nan

np.nansum(a)
# 17.6

3.3.2. Cumulative Sum

  • a.cumsum()

  • np.cumsum()

  • np.nancumsum()

import numpy as np


a = np.array([[1.1, 2.2, 3.3],
              [4.4, 5.5, 6.6]])

a.cumsum()
# array([ 1.1,  3.3,  6.6, 11. , 16.5, 23.1])

np.cumsum(a)
# array([ 1.1,  3.3,  6.6, 11. , 16.5, 23.1])
import numpy as np


a = np.array([[1.1, 2.2, 3.3],
               [4.4, np.nan, 6.6]])

a.cumsum()
# array([ 1.1,  3.3,  6.6, 11. ,  nan,  nan])

np.cumsum(a)
# array([ 1.1,  3.3,  6.6, 11. ,  nan,  nan])

np.nancumsum(a)
# array([ 1.1,  3.3,  6.6, 11. , 11. , 17.6])

3.3.3. Product

  • a.prod()

  • np.prod()

  • np.nanprod()

import numpy as np


a = np.array([[1, 2, 3],
              [4, 5, 6]])

a.prod()
# 720

3.3.4. Cumulative Product

  • a.cumprod()

  • np.cumprod()

  • np.nancumprod()

3.3.5. Mean

  • a.mean()

  • np.mean()

  • np.nanmean()

import numpy as np


a = np.array([[1, 2, 3],
              [4, 5, 6]])

a.mean()
# 3.5

a.mean(axis=0)
# array([2.5, 3.5, 4.5])

a.mean(axis=1)
# array([2., 5.])

3.3.6. Cumulative Mean

  • a.cummean()

  • np.cummean()

  • np.nancummean()

3.3.7. Variance

  • a.var()

  • np.var()

  • np.nanvar()

import numpy as np


a = np.array([[1, 2, 3],
              [4, 5, 6]])

a.var()
# 2.9166666666666665

a.var(axis=0)
# array([2.25, 2.25, 2.25])

a.var(axis=1)
# array([0.66666667, 0.66666667])

3.3.8. Standard Deviation

  • a.std()

  • np.std()

  • np.nanstd()

import numpy as np


a = np.array([[1, 2, 3],
              [4, 5, 6]])

a.std()
# 1.707825127659933

a.std(axis=0)
# array([1.5, 1.5, 1.5])

a.std(axis=1)
# array([0.81649658, 0.81649658])

3.3.9. Minimal Value

  • np.ndarray.argmin() index of an np.ndarray.min() element in array

  • np.nanmin()

  • np.nanargmin()

import numpy as np


a = np.array([[1, 2, 3],
              [4, 5, 6]])

a.min()
# 1

a.min(axis=0)
# array([1, 2, 3])

a.min(axis=1)
# array([1, 4])
import numpy as np


a = np.array([[1, 2, 3],
              [4, 5, 6]])

a.argmin()
# 0

a.argmin(axis=0)
# array([0, 0, 0])

a.argmin(axis=1)
# array([0, 0])
import numpy as np

a = np.array([[99,   2, 33],
              [22,   0,  4],
              [4,  155,  6]])

a.min()             # 0
a.min(axis=0)       # array([4, 0, 4])
a.min(axis=1)       # array([2, 0, 4])
a.min(axis=-1)      # array([2, 0, 4])

a.argmin()          # 4
a.argmin(axis=0)    # array([2, 1, 1])
a.argmin(axis=1)    # array([1, 1, 0])
a.argmin(axis=-1)   # array([1, 1, 0])

a.flat[4]                               # 0
np.unravel_index(4, (3, 3))             # (1, 1)
np.unravel_index(a.argmin(), a.shape)   # (1, 1)
Code 3.145. Shows the coordinates of argmin value
import numpy as np


a = np.array([[1, 2, 3],
              [4, 5, 6]])

a.min()
# 1

a.argmin()
# 0

np.unravel_index(a.argmin(), a.shape)
# (0, 0)

a == a.min()
# array([[ True, False, False],
#        [False, False, False]])

3.3.10. Maximal Value

  • np.ndarray.argmax() index of an a.max() element in array

  • np.nanmax()

  • np.nanargmax()

import numpy as np


a = np.array([[1, 2, 3],
              [4, 5, 6]])

a.max()
# 6

a.max(axis=0)
# array([4, 5, 6])

a.max(axis=1)
# array([3, 6])
import numpy as np


a = np.array([[1, 2, 3],
              [4, 5, 6]])

a.argmax()
# 5

a.argmax(axis=1)
# array([2, 2])

a.argmax(axis=0)
# array([1, 1, 1])
import numpy as np


a = np.array([[99,   2, 33],
              [22,   0,  4],
              [4,  155,  6]])

a.max()             # 155
a.max(axis=0)       # array([ 99, 155,  33])
a.max(axis=1)       # array([ 99,  22, 155])
a.max(axis=-1)      # array([ 99,  22, 155])

a.argmax()          # 7
a.argmax(axis=0)    # array([0, 2, 0])
a.argmax(axis=1)    # array([0, 0, 1])
a.argmax(axis=-1)   # array([0, 0, 1])

a.flat[7]                               # 155
np.unravel_index(7, (3, 3))             # (2, 1)
np.unravel_index(a.argmax(), a.shape)   # (2, 1)
Code 3.146. Shows the coordinates of argmax value
import numpy as np


a = np.array([[1, 2, 3],
              [4, 5, 6]])

a.max()
# 6

a.argmax()
# 5

np.unravel_index(a.argmax(), a.shape)
# (1, 2)

a == a.max()
# array([[False, False, False],
#        [False, False,  True]])

3.3.11. Median

  • np.median()

  • np.nanmedian()

3.3.12. Quantile

  • np.quantile()

  • np.nanquantile()

3.3.13. Percentile

  • np.percentile()

  • np.nanpercentile()

3.3.14. Assignments

Todo

Create assignments