リストの要素同士を比較して大きいほう[小さいほう]の値だけでリストを作る

import numpy as np

def array_max(a, b):
    a, b = np.asarray([a, b])
    return a*(is_larger:=a>b) + b*(~is_larger)

def array_min(a, b):
    a, b = np.asarray([a, b])
    return a*(is_smaller:=a<b) + b*(~is_smaller)
    
a = [ -9, 20, 30, 40]
b = [-10, 21, 30, 41]

print(array_max(a, b))
print(array_min(a, b))

# 組み込み函数があった。
print(np.maximum(a, b))
print(np.minimum(a, b))


 

可変長引数に拡張する。

import numpy as np

def array_max(*lists):
    return np.amax([lists], axis=1)[0]

def array_min(*lists):
    return np.amin([lists], axis=1)[0]

a = [ -9, 20, 30, 40]
b = [-10, 21, 30, 41]

print(array_max(a, b))
print(array_min(a, b))