假设我有一个2D numpy数组,比如
arr = array([[0, 0.001 , 0.002], [0.03, 0.04, 0.05], [0.01, 0.002, 0.5], [0.05, 0.8, 0.003]])
我想对它执行一个分段函数,比如
def gammacor(x):
return np.piecewise(x, [x <= 0.00313, x > 0.00313], [12.92*x, 1.055*x**(1/2.4)-0.055])
gcarr = gammacor(arr)
当我这样做时,我会得到一个错误:
TypeError:NumPy布尔数组索引分配需要0或1维输入,输入有2维
如果我尝试在展平阵列上运行该函数(在运行该函数后,计划将其重塑回nx 3),则会出现以下错误:
ValueError:NumPy布尔数组索引分配无法将3个输入值分配给掩码为true的0输出值
有没有一种简单的方法可以将分段函数应用于2D(或ND)数组的所有元素
np.piecewise的第三个参数是funclist
它们应该是可调用的:
输出:
相关问题 更多 >
编程相关推荐