1.np.piecewise()
计算一个分段定义的函数
piecewise(x, condlist, funclist, *args, **kw)
含义:
参数解释:
x: ndarray or scalar array数组或者标量
condlist: list of bool arrays or bool scalars布尔数组
funclist: list of callables, f(x,*args,**kw), or scalars可调用函数的列表或者标量
*args,**kw都是funclist的可选参数
例题:
condlist中不包含的元素默认值为0
import numpy as np
def func(arr,a,b):
return np.piecewise(arr,[arr<a,arr>b],[a,b])
arr=np.array([1,2,5,6,9,8,100])
func(arr,5,10)
#结果:array([5,5,5,0,0,0,10])
如果不想默认为0,想保留原来的值——使用lambda
import numpy as np
def func(arr,a,b):
return np.piecewise(arr,[arr<a,arr>b,],[a,b,lambda x:x])
arr=np.array([1,2,5,6,9,8,100])
func(arr,5,10)
#结果:array([5,5,5,6,9,8,10])
import numpy as np
def func(arr,a):
return np.piecewise(arr,[arr<a,arr%2==0,],[lambda x:x,lambda x:x,0])
arr=np.array([1,2,5,6,9,8,100])
func(arr,5)
#结果:array([1,2,0,6,0,8,100])