gpt4 book ai didi

python - 总结 np.array 或 np.float

转载 作者:太空狗 更新时间:2023-10-30 00:31:44 25 4
gpt4 key购买 nike

我们有一个基于 numpy 的算法,可以处理不同类型的数据。

def my_fancy_algo(a):
b = np.sum(a, axis=1)
# Do something b
return b

如果我们通过 a=np.array[1.0, 2.0, 3.0]然后b评估为 [6.0] .

如果我们通过 a=6.0然后我们得到

*** ValueError: 'axis' entry is out of bounds

期望的行为是我们得到相同的返回值 6.0两个输入都不是 ([6.0])。

处理此问题的正确 pythonic 和安全方法是什么? typeshape

最佳答案

您的示例数组实际上给出了与标量相同的问题:

>>> a = np.array([1.0,2.0,3.0])
>>> np.sum(a, axis=1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.4/site-packages/numpy/core/fromnumeric.py", line 1724, in sum
out=out, keepdims=keepdims)
File "/usr/lib/python3.4/site-packages/numpy/core/_methods.py", line 32, in _sum
return umr_sum(a, axis, dtype, out, keepdims)
ValueError: 'axis' entry is out of bounds

好消息是,有一个 numpy 函数可以确保使用 axis=1 进行 numpy 调用能够正常工作 - 它叫做 np.atleast_2d :

>>> np.sum(np.atleast_2d(a), axis=1)
array([ 6.])
>>> np.sum(np.atleast_2d(6.0), axis=1)
array([ 6.])

但由于您显然想要一个标量答案,因此您可以完全放弃 axis 参数:

>>> np.sum(a)
6.0
>>> np.sum(6.0)
6.0

关于python - 总结 np.array 或 np.float,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31921290/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com