我目前正在尝试使用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'
>>>
如何在我的终端上解决此问题?
答案 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
(默认),则行为将恢复。