numpy.unique не может распознать аргумент оси - PullRequest
0 голосов
/ 28 февраля 2019

В настоящее время я пытаюсь использовать numpy.unique, и когда я пробую пример для уникальных строк в двумерных массивах,

>>> 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)

Моя версия numy:

# 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 голосов
/ 09 мая 2019

tl; dr: Install numpy ≥ 1.13.0.

что вы говорите?

Из-за AppVeyor CI конвейерасамопроизвольно провалившись с той же проблемой в numpy 1.11.3 , я неохотно закатал грязные рукава , спасибо, плохая привычка садоводства и продолжил исследование.

Поскольку каждый предыдущий комментатор подозревал , это простая проблема управления версиями.В нашем случае наш мультифизический симулятор биологии часто передает аргумент ключевого слова axis в функцию np.unique() и, следовательно, неявно требует numpy ≥ 1.13.0.Естественно, мы не смогли явно объявить это требование в списке install_requires нашего setup.py установщика.</shaking_my_head>

все, что вы знаете, является ложью

Мы знаем, что вы думаете , что ваш CLI NumPy ≥ 1.13.0 , но этопочти наверняка это не так.

Поскольку numpy ≥ 1.13.0 впервые ввел аргумент ключевого слова axis для функции np.unique() , этот аргумент также гарантированно будет доступен в numpy 1.15.4 - версия numpy, которую вы ошибочно думаете , которую вы установили в CLI, но, вероятно, не установили.Чтобы процитировать официальные примечания к выпуску для numpy 1.13.0 :

аргумент осей для уникального

в N-мерном массиве,теперь пользователь может выбрать axis, чтобы искать дублирующиеся N-1-мерные элементы, используя numpy.unique.Исходное поведение восстанавливается, если axis=None (по умолчанию).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...