如何优雅地规范化np.gradient的每个向量?

时间:2017-09-25 12:16:08

标签: python numpy

使用numpy gradient函数,可以获得数组列表。例如。 3维3对应于x,y,z轴的阵列。我想规范每个元素的渐变。

我现在拥有的是:

base64

对于我认为不是异国情调的问题,它似乎非常冗长和不优雅。上面还做了很多我想避免的复制(作为奖励)。

2 个答案:

答案 0 :(得分:1)

使用np.linalg.norm计算范数并简单地迭代划分 -

norms = np.linalg.norm(gradient,axis=0)
gradient = [np.where(norms==0,0,i/norms) for i in gradient]

或者,如果您不介意将n+1 dim数组作为输出 -

out = np.where(norms==0,0,gradient/norms)

答案 1 :(得分:1)

linalg.norm可以使用$template = $twig->load('index.html'); echo $template->render(array('the' => 'variables', 'go' => 'here')); 密钥arg

进行广播
keepdims=True