np.empty_like是否有参数错误?

时间:2017-12-12 11:21:20

标签: python arrays numpy

当我使用numpy函数empty_like时,我得到1个错误,无法自己解释。

以下是代码:

In [38]: aa=np.array([1,2])
In [39]: b=np.empty_like(aa)    #it is ok
In [40]: b=np.empty_like(a=aa)   #it is wrong
TypeError
Traceback (most recent call last)
<ipython-input-40-9b39ff78d8bb> in <module>()
----> 1 b=np.empty_like(a=aa)   #it is wrong
TypeError: Required argument 'prototype' (pos 1) not found

我查看了文档,其中说

  

empty_like(a, dtype=None, order='K', subok=True)

     

返回一个与给定数组具有相同形状和类型的新数组。

     

...

是什么原因?该函数有一个名为a的形式参数,但我无法使用它来调用该函数。当然,使用a的其他* _like函数也可以。

In [42]: b=np.zeros_like(a=aa)   #it is ok

In [43]: b=np.ones_like(a=aa)   #it is ok

有人知道原因吗?或者这是一个错误?

1 个答案:

答案 0 :(得分:2)

这似乎是__doc__属性中的错误,使得帮助显示错误的函数签名:

>>>np.empty_like.__doc__
"empty_like(a, dtype=None, order='K', subok=True)\n\n

等等。但是错误之后,

np.empty_like(prototype=aa)

的工作原理。 a我觉得这是错误的。可能是有人犯过的错字,或者是一个不遵守惯例的新程序员。