numpy.unique无法识别轴参数

时间:2019-02-28 14:18:30

标签: python numpy terminal

我目前正在尝试使用numpy.unique,并且在二维数组中的唯一行上尝试使用example时,

>>> a = np.array([[1, 0, 0], [1, 0, 0], [2, 3, 4]])
>>> np.unique(a, axis=0)

将生成以下TypeError

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unique() got an unexpected keyword argument 'axis'

但是,在文档中我可以看到:

  

numpy.unique(ar,return_index = False,return_inverse = False,   return_counts = False,axis = None)

我的numpy版本是:

# THIS FILE IS GENERATED FROM NUMPY SETUP.PY                             
#                                                                        
# To compare versions robustly, use `numpy.lib.NumpyVersion`             
short_version = '1.15.4'
version = '1.15.4'
full_version = '1.15.4'
git_revision = 'de28edd8f514b82c0524b55f622078d47f479322'
release = True

if not release:
    version = full_version

我的python编译器版本是:

$ python --version
Python 3.6.0 :: Anaconda custom (x86_64)

仅在命令行中生成错误: 使用相同的解释器,在PyCharm上都可以。

我还要在终端中确认我使用的是上述版本:

Python 3.6.0 |Anaconda custom (x86_64)| (default, Dec 23 2016, 13:19:00) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> numpy.__version__
'1.15.4'
>>> 

如何在我的终端上解决此问题?

1 个答案:

答案 0 :(得分:0)

tl; dr: 安装numpy≥1.13.0。

你怎么说?

由于AppVeyor CI pipeline spontaneously failing with the same issue under numpy 1.11.3,我很不情愿地卷起积满灰尘的袖子 非常感谢,有不良的园艺习惯 ,并作了进一步调查。

every prior commentator suspected一样,这是一个简单的版本控制问题。在我们的情况下,our multiphysics biology simulator经常将axis关键字参数传递给np.unique()函数,因此隐式要求numpy≥1.13.0。自然,我们没有在install_requires安装程序的setup.py列表中明确声明此要求。 </shaking_my_head>

你所知道的一切都是谎言

我们知道you think that your CLI numpy ≥ 1.13.0,但是几乎可以肯定不是这种情况。

numpy ≥ 1.13.0 first introduced the axis keyword argument to the np.unique() function起,保证在numpy 1.15.4下也可以使用此参数-您错误地认为在命令行界面中安装的numpy版本,但可能没有t。引用official release notes for numpy 1.13.0

  

用于唯一的轴参数

     

现在,在N维数组中,用户可以选择要沿其查看的axis   使用numpy.unique获取重复的N-1维元素。原本的   如果axis=None(默认),则行为将恢复。