Примечания к выпуску NumPy 1.10.2#

Этот выпуск исправляет ряд ошибок, обнаруженных в версии 1.10.1, и добавляет различные улучшения сборки и выпуска.

Numpy 1.10.1 поддерживает Python 2.6 - 2.7 и 3.2 - 3.5.

Примечания по совместимости#

Проверка расслабленного шага больше не используется по умолчанию#

Возникли проблемы с обратной совместимостью, связанные с изменением типа данных многомерных массивов Fortran при создании представлений, которые необходимо решать в течение более длительного времени.

Исправление ошибки swig в numpy.i#

Ослабленная проверка шага выявила ошибку в array_is_fortran(a), который использовал PyArray_ISFORTRAN для проверки на фортран-непрерывность вместо PyArray_IS_F_CONTIGUOUS. Возможно, вы захотите перегенерировать swig-файлы с использованием обновленного numpy.i

Устаревание представлений, изменяющих размерности в порядке Фортрана#

Это устаревает присвоение нового дескриптора атрибуту dtype не-C-непрерывного массива, если это приводит к изменению формы. Это фактически запрещает просмотр многомерного массива Fortran с использованием dtype, который изменяет размер элемента вдоль первой оси.

Причина устаревания заключается в том, что при включенной проверке расслабленных шагов массивы, которые являются одновременно C и Fortran смежными, всегда рассматриваются как C смежные, что нарушает некоторый код, зависящий от их взаимной исключительности для нескалярных массивов с ndim > 1. Это устаревание подготавливает путь к постоянному включению проверки расслабленных шагов.

Исправленные проблемы#

  • gh-6019 Представление маскированного массива не работает для структурированного массива с многомерным столбцом.

  • gh-6462 Медиана пустого массива вызывает IndexError.

  • gh-6467 Регрессия производительности для доступа к массиву записей.

  • gh-6468 numpy.interp использует значение 'left' даже когда x[0]==xp[0].

  • gh-6475 np.allclose возвращает memmap, когда один из его аргументов является memmap.

  • gh-6491 Ошибка в трансляции массива stride_tricks.

  • gh-6495 Неопознанная опция командной строки '-ffpe-summary' в gfortran.

  • gh-6497 Сбой операции reduce для recarrays.

  • gh-6498 Упомянуть изменение правила приведения по умолчанию в примечаниях к выпуску 1.10.

  • gh-6530 Функция partition выдает ошибку на пустом входе.

  • gh-6532 numpy.inner иногда возвращает неверное неточное значение.

  • gh-6563 Intent(out) сломан в последних версиях f2py.

  • gh-6569 Не удаётся запустить тесты после 'python setup.py build_ext -i'

  • gh-6572 Ошибка в трансляции компонента массива stride_tricks.

  • gh-6575 BUG: Split создаёт пустые массивы с неправильным количеством измерений

  • gh-6590 Проблема с массивами Fortran в numpy 1.10.

  • gh-6602 Случайный __all__ отсутствует choice и dirichlet.

  • gh-6611 ma.dot больше не всегда возвращает маскированный массив в версии 1.10.

  • gh-6618 NPY_FORTRANORDER в make_fortran() в numpy.i

  • gh-6636 Утечка памяти во вложенных dtype в numpy.recarray

  • gh-6641 Выборка полей recarray даёт структурированный массив.

  • gh-6667 ma.make_mask неправильно обрабатывает ввод ma.nomask.

  • gh-6675 Оптимизированное обнаружение blas сломано в master и 1.10.

  • gh-6678 Получение неожиданной ошибки от: X.dtype = complex (или Y = X.view(complex))

  • gh-6718 f2py тест не проходит в pip установленном numpy-1.10.1 в virtualenv.

  • gh-6719 Ошибка компиляции Cython файла: Pythonic division не разрешена без gil.

  • gh-6771 Numpy.rec.fromarrays теряет метаданные dtype между версиями 1.9.2 и 1.10.1

  • gh-6781 Скрипт travis-ci в maintenance/1.10.x требует исправления.

  • gh-6807 Ошибки тестирования Windows для версии 1.10.2

Объединённые PR#

Следующие PR были объединены в 1.10.2. Когда PR является обратным портом, указан номер PR для оригинального PR против master.

  • gh-5773 MAINT: Скрытие трассировок вспомогательных функций тестирования при использовании с pytest.

  • gh-6094 BUG: Исправлена ошибка со строковым представлением маскированных структурированных массивов.

  • gh-6208 MAINT: Ускорение доступа к полям за счёт удаления ненужных проверок безопасности.

  • gh-6460 BUG: Замена os.environ.clear на менее инвазивную процедуру.

  • gh-6470 BUG: Исправить AttributeError в numpy distutils.

  • gh-6472 MAINT: Использовать Python 3.5 вместо 3.5-dev для тестирования travis 3.5.

  • gh-6474 REL: Обновление скрипта Paver для sdist и автоматического переключения предупреждений тестов.

  • gh-6478 BUG: Исправить флаги компилятора Intel для сборки OS X.

  • gh-6481 MAINT: LIBPATH с пробелами теперь поддерживается Python 2.7+ и Win32.

  • gh-6487 BUG: Разрешить вложенное использование параметров при определении массивов в f2py.

  • gh-6488 BUG: Расширять общие блоки, а не перезаписывать в f2py.

  • gh-6499 DOC: Упомянуть, что приведение по умолчанию для операций на месте изменилось.

  • gh-6500 BUG: Рекордные массивы, рассматриваемые как подмассивы, не преобразуются в тип np.record.

  • gh-6501 REL: Добавлена команда "make upload" для собранной документации, обновлена "make dist".

  • gh-6526 BUG: Исправление использования __doc__ в setup.py для режима -OO.

  • gh-6527 BUG: Исправлена ошибка IndexError при вычислении медианы пустого массива.

  • gh-6537 BUG: Исправление ma.atleast_* со скалярным аргументом для возврата массивов.

  • gh-6538 ОШИБКА: Исправлено, что ma.masked_values не уменьшает маску, если требуется.

  • gh-6546 BUG: Исправление регрессии скалярного произведения для несмежных массивов.

  • gh-6553 BUG: Исправление ошибки partition и argpartition для пустого ввода.

  • gh-6556 BUG: Ошибка в broadcast_arrays с массивом as_strided.

  • gh-6558 MAINT: Незначительное обновление команды сборки документации «make upload».

  • gh-6562 BАГ: Отключить проверки безопасности представления в recarray.

  • gh-6567 BUG: Откат некоторых исправлений import * в f2py.

  • gh-6574 DOC: Примечания к выпуску для NumPy 1.10.2.

  • gh-6577 BUG: Исправление для #6569, разрешающее build_ext --inplace

  • gh-6579 MAINT: Исправление ошибки в правиле загрузки документации.

  • gh-6596 BUG: Исправление swig для ослабленной проверки шага.

  • gh-6606 DOC: Обновление заметок о выпуске 1.10.2.

  • gh-6614 BАГ: Добавьте choice и dirichlet в numpy.random.__all__.

  • gh-6621 BUG: Исправлена функция swig make_fortran.

  • gh-6628 BUG: Сделать так, чтобы allclose возвращал логическое значение Python.

  • gh-6642 BUG: Исправление утечки памяти в _convert_from_dict.

  • gh-6643 ENH: заставить recarray.getitem возвращать recarray.

  • gh-6653 BАГ: Исправление ma dot для постоянного возврата маскированного массива.

  • gh-6668 BUG: ma.make_mask всегда должен возвращать nomask для аргумента nomask.

  • gh-6686 BUG: Исправление ошибки в assert_string_equal.

  • gh-6695 BАГ: Исправлено удаление временных каталогов, созданных во время сборки.

  • gh-6697 MAINT: Исправление ложной точки с запятой в определении макроса PyArray_FROM_OT.

  • gh-6698 TST: тест на ошибку np.rint для больших целых чисел.

  • gh-6717 BАГ: Повторное добавление резервного обнаружения CBLAS на Linux.

  • gh-6721 BUG: Исправление для #6719.

  • gh-6726 BUG: Исправление ошибок, выявленных откатом ослабленных шагов.

  • gh-6757 BUG: связать библиотеку cblas, если обнаружен cblas.

  • gh-6756 TST: тестировать только f2py, а не f2py2.7 и т.д., исправляет #6718.

  • gh-6747 DEP: Устарело изменение формы не-C-непрерывного массива через descr.

  • gh-6775 MAINT: Включение шаблона from __future__ в некоторые файлы, где он отсутствует.

  • gh-6780 BUG: метаданные не копируются в base_dtype.

  • gh-6783 BUG: Исправление тестирования travis ci для новой инфраструктуры Google.

  • gh-6785 BUG: Быстрое и грязное исправление для interp.

  • gh-6813 TST,BUG: Исправить работу test_mvoid_multidim_print для 32-битных систем.

  • gh-6817 BUG: Отключение 32-битных оптимизаций компилятора msvc9 для npy_rint.

  • gh-6819 TST: Исправлены сбои test_mvoid_multidim_print на Python 2.x для Windows.

Начальная поддержка mingwpy была отменена, так как она вызывала проблемы для сборок не под Windows.

  • gh-6536 BUG: Откат gh-5614 для исправления проблем сборки на не-Windows системах

Исправление для np.lib.split было отменено, потому что оно привело к "исправлению" поведения, которое будет присутствовать в NumPy 1.11 и уже присутствовало в NumPy 1.9. См. обсуждение проблемы на gh-6575 для уточнения.

  • gh-6576 BАГ: Откат gh-6376 для исправления поведения split для пустых массивов.

Проверка расслабленных шагов была отменена. Были проблемы обратной совместимости, связанные с изменением dtype представлений многомерных фортран-массивов, которые необходимо решать в течение более длительного времени.

  • gh-6735 MAINT: Сделать отсутствие проверки расслабленного шага по умолчанию для версии 1.10.

Примечания#

Ошибка в релизе Numpy 1.10.1 приводила к возникновению исключений для RuntimeWarning и DeprecationWarning в проектах, зависящих от Numpy. Это было исправлено.