首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么np.linalg.norm(...,axis=1)比写出向量范数的公式要慢?

np.linalg.norm(..., axis=1)比写出向量范数的公式要慢的原因是因为np.linalg.norm()是一个通用的函数,它可以计算多维数组的范数,而不仅仅是向量范数。因此,它需要进行更多的计算和判断来适应不同的输入。

当我们使用np.linalg.norm(..., axis=1)时,它会对输入的多维数组进行逐行计算范数。这意味着它需要遍历每一行,并对每一行进行范数计算。这种逐行计算的方式会导致额外的循环和计算开销,从而使得计算速度变慢。

相比之下,如果我们手动写出向量范数的公式并进行计算,我们可以直接对向量进行操作,避免了对多维数组的遍历和判断。这样可以减少计算的复杂度,提高计算速度。

总结起来,np.linalg.norm(..., axis=1)比写出向量范数的公式要慢是因为它是一个通用的函数,需要适应不同的输入,并进行额外的循环和计算开销。而手动写出向量范数的公式可以直接对向量进行操作,减少了计算的复杂度。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

基于协同过滤的推荐引擎(理论部分)

记得原来和朋友猜测过网易云的推荐是怎么实现的,大概的猜测有两种:一种是看你听过的和收藏过的音乐,再看和你一样听过这些音乐的人他们喜欢听什么音乐,把他喜欢的你没听过的音乐推荐给你;另一种是看他听过的音乐或者收藏的音乐中大部分是什么类型,然后把那个类型的音乐推荐给他。当然这些都只是随便猜测。但是能发现一个问题,第二种想法很依赖于推荐的东西本身的属性,比如一个音乐要打几个类型的标签,属性的粒度会对推荐的准确性产生较大影响。今天看了协同过滤后发现其实整个算法大概和第一种的思想差不多,它最大的特点就是忽略了推荐的东西

09

基于协同过滤的推荐引擎(理论部分)

记得原来和朋友猜测过网易云的推荐是怎么实现的,大概的猜测有两种:一种是看你听过的和收藏过的音乐,再看和你一样听过这些音乐的人他们喜欢听什么音乐,把他喜欢的你没听过的音乐推荐给你;另一种是看他听过的音乐或者收藏的音乐中大部分是什么类型,然后把那个类型的音乐推荐给他。当然这些都只是随便猜测。但是能发现一个问题,第二种想法很依赖于推荐的东西本身的属性,比如一个音乐要打几个类型的标签,属性的粒度会对推荐的准确性产生较大影响。今天看了协同过滤后发现其实整个算法大概和第一种的思想差不多,它最大的特点就是忽略了推荐的东西

05
领券