numpy.array() 抛出异常(对不起,最初这个可怕的标题)



我正在学习Python和numpy,并且对鸭子打字的想法很陌生。 我正在编写函数,某物/某人应该在其中传递一个 numpy 数组。 尝试接受鸭子类型,我正在编写代码以将numpy.arraycopy=ndmin=选项一起使用,以将array_likes或 1d/0d 数组转换为我需要的形状。 具体来说,我在可以接受(p,p)数组或标量的情况下使用 ndmin= 选项;标量可以编码为int(1,)数组、(1,1)数组、[1]列表等...

因此,为了解决这个问题,我正在使用类似 S = numpy.array(S,copy=False,ndmin=2) 的东西来获取具有正确ndim的数组(如果可能),然后根据需要测试形状。 我知道我应该将其嵌入到 Try-Except 块中,但找不到任何关于numpy.array()可能引发的异常类型的文档。 因此,我目前只有这个:

# duck covariance matrix into a 2d matrix
try:
    S = numpy.array(S, ndmin = 2, copy=False)
except Exception as e:
    raise e

我应该尝试在此处捕获哪些特定异常? 谢谢。

将函数记录为接受array_like对象,并将异常处理留给调用方。

numpy.array()是非常宽松的函数,它几乎可以转换为数组。

尝试使用 np.asarray 将输入转换为数组。如果输入已经是 Numpy 数组,则保证不会复制任何内容。如果希望接收array子类,请使用 np.asanyarray

请注意,许多 Numpy 接口并不关心输入是 1 维还是 2 维 - 例如,np.dot同时适用于 1 维和 2 维输入。最好保持这种方式 - 这样,像标量乘法这样的东西就可以了

最新更新