求矩阵的模长可以使用np.linalg.norm函数,默认是求二范数,也就是Euclid范数(欧几里得范数,常用计算向量长度),即向量元素绝对值的平方和再开方。

下边是求axis=0时的单位向量:
import numpy as np
a = np.array([[3, 9, 6, 5, 3],
[9, 3, 8, 4, 0],
[6, 8, 9, 2, 2]])
print(a)
a_x, a_y = np.gradient(a)
print(a_x)
# print(np.gradient(a, axis=1))
norm_x = np.linalg.norm(a_x, axis=0)
print(norm_x)
print(a_x / norm_x)
for idx, x in enumerate(norm_x):
if x == 0.0:
a_x[:, idx] = 0
else:
a_x[:, idx] /= x
print(a_x)
本文介绍了如何使用NumPy的linalg.norm函数计算矩阵的欧几里得范数,并展示了如何将梯度向量转换为单位向量。通过轴0操作,我们实现了向量的规范化,便于后续分析和可视化。
2741

被折叠的 条评论
为什么被折叠?



