Dup Ver Goto 📝

5_Great_Numpy_Features

To
65 lines, 154 words, 1214 chars Page '5_Great_Numpy_Features' does not exist.

Indently 5 Great Numpy Features

Broadcasting

import numpy as np

arr = np.array([1,2,3])
print(arr+10)
print(arr+[1,2,4])

arr = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(arr)
print(arr+10)
print(arr+[1,2,4]) # adds [1,2,4] to each row

arr = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(arr)
print(arr.transpose()+[1,2,4])
print((arr.transpose()+[1,2,4]).transpose()) # adds [1,2,4] to each column

In general, a scalar operation applied to a numpy array applies that scalar operation to each element of the array.

Masking

import numpy as np

arr = np.array([1,5,7,2,9,10])
mask = arr > 5
print(arr[mask])
arr[arr > 5] = 0

mask = arr % 2 == 0
print(arr[mask])

Where

arr = np.array([5,10,15,20,-5,2])
result = np.where(arr > 10, "High", "Low")
# [ low low high high low low ]

counter = Counter(result.tolist())
for k,v in counter.items:
  print(f'{k}: {v}')

Funky Indexing

arr = np.array([10,20,30,40,50,60,70])
indices = [0,2,4,5]
print(arr[indices])
print(arr[[0,2,4,5]])
arr[1:4] = [999,999,999]

arr[[1,3,5]] = 1

Clip

pixels = np.array([100,180,260,-20,90,300])
clipped = np.clip(pixels,0, 255)