numpy arctan2参数导致ValueError取决于语法

时间:2018-04-06 10:06:04

标签: python numpy

重现的代码:

import numpy as np
y1, y2 = [5, 3]

print(np.arctan2(y1, y2))  # Output: 1.0303768265243125

print(np.arctan2(x1=y1, x2=y2))
# Output:
#---------------------------------------------------------------------------
#ValueError                                Traceback (most recent call last)
#<ipython-input-13-b7d0f788df1f> in <module>()
#----> 1 np.arctan2(x1=y1, x2=y2)

#ValueError: invalid number of arguments

我无法解释抛出的ValueError。我希望两者在语义上完全相同。这是Python,Numpy或我缺乏理解的东西吗?

这是Numpy中arctan2的定义:

def arctan2(x1, x2, *args, **kwargs)

我使用的版本:

  • Linux的4.13.0-38泛型-x86_64的与 - Debian的拉伸-SID
  • Python 3.6.1(默认,2017年6月16日,16:00:03)[GCC 5.4.0 20160609]
  • NumPy 1.14.2

1 个答案:

答案 0 :(得分:3)

参数x1x2被称为positional-only parameters。这在arctan2文档中由函数签名中的/字符表示:

numpy.arctan2(x1, x2, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature, extobj]) = <ufunc 'arctan2'
                      ^