指定顺序时,Numpy linalg norm不接受标量

2024-10-02 10:20:50 发布

您现在位置:Python中文网/ 问答频道 /正文

好吧,书名说明了一切:

from numpy import linalg as LA
import numpy as np
fortytwo = np.array(42)
LA.norm(42) # works
LA.norm(fortytwo) # works
# All the lines below raise a ValueError:
LA.norm(fortytwo,np.inf)
LA.norm(fortytwo,-np.inf)
LA.norm(fortytwo,1)
LA.norm(42,1)

我不得不在代码中加入一些难看的特殊情况来处理这个问题。有没有比标量值的特殊情况更好的处理方法呢?为什么这个函数是这样写的?在

文档也没有提到:http://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.norm.html


Tags: fromimportnumpynormasnp情况all
1条回答
网友
1楼 · 发布于 2024-10-02 10:20:50

以下是部分代码(全部是Python,所有人都可以看到):

if ord is None and axis is None:
    return sqrt(add.reduce((x.conj() * x).real, axis=None))

这是你的案子。在

但是当您指定ord时,它会查看维度。在你的例子中nd==0。在

^{pr2}$

现在axis是{},一个空元组

^{3}$

这是您的错误-0d数组和非默认值ord。在

我想他们应该放在另一个例子中-如果0d忽略ord参数。或者你自己也可以。在

相关问题 更多 >

    热门问题