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

Это выпуск только с исправлением ошибок в серии 1.8.x.

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

  • gh-4276: Исправлены методы mean, var, std для массивов объектов

  • gh-4262: удалить небезопасное использование mktemp

  • gh-2385: absolute(complex(inf)) вызывает недопустимое предупреждение в python3

  • gh-4024: Присваивание последовательности не вызывает исключение при несоответствии формы

  • gh-4027: Исправлено чтение строк длиннее BUFFERSIZE по частям

  • gh-4109: Исправлен тип возвращаемого значения скаляра объекта для индексов 0-мерных массивов

  • gh-4018: исправлена отсутствующая проверка на неудачное выделение памяти в универсальных функциях

  • gh-4156: высокий порядок linalg.norm отбрасывает мнимые элементы комплексных массивов

  • gh-4144: linalg: norm не работает с longdouble, signed int

  • gh-4094: исправление обработки NaT в _strided_to_strided_string_to_datetime

  • gh-4051: исправлено неинициализированное использование в _strided_to_strided_string_to_datetime

  • gh-4093: Загрузка сжатого файла .npz не удаётся в Python 2.6.6

  • gh-4138: ошибка сегментации с нестандартным порядком байтов memoryview в python 3.4

  • gh-4123: Исправлена отсутствующая проверка на NULL в lexsort

  • gh-4170: исправление проверки только нативных long long в memoryviews

  • gh-4187: Исправлена поддержка больших файлов на 32-битных

  • gh-4152: fromfile: обеспечить синхронизацию позиций файловых дескрипторов в python3

  • gh-4176: совместимость с clang: Опечатки в conversion_utils

  • gh-4223: Получение нецелочисленного элемента вызывало возврат массива

  • gh-4197: исправлена незначительная утечка памяти в случае сбоя memoryview

  • gh-4206: исправлена сборка с однопоточным Python

  • gh-4220: добавить versionadded:: 1.8.0 в документацию ufunc.at

  • gh-4267: улучшение обработки сбоев выделения памяти

  • gh-4267: исправлено использование capi без gil в ufunc.at

  • gh-4261: Обнаружение версий компиляторов GNU от вендоров

  • gh-4253: IRR возвращал nan вместо допустимого отрицательного ответа

  • gh-4254: исправление ненужного изменения флага порядка байтов для массивов байтов

  • gh-3263: numpy.random.shuffle портит маску MaskedArray

  • gh-4270: np.random.shuffle не работает с гибкими типами данных

  • gh-3173: Ошибка сегментации при аргументе 'size' в random.multinomial

  • gh-2799: разрешить использование unique со списками комплексных чисел

  • gh-3504: исправление усечения linspace для целочисленного скаляра массива

  • gh-4191: get_info('openblas') не читает ключ libraries

  • gh-3348: Нарушение доступа в _descriptor_from_pep3118_format

  • gh-3175: ошибка сегментации с numpy.array() из bytearray

  • gh-4266: histogramdd - неверный результат для записей, очень близких к последней границе

  • gh-4408: Исправление функции stride_stricks.as_strided для массивов объектов

  • gh-4225: исправить возврат log1p и exmp1 для np.inf на сборках компилятора Windows

  • gh-4359: Исправление бесконечной рекурсии в str.format гибких массивов

  • gh-4145: Неправильная форма результата вещания с оператором возведения в степень

  • gh-4483: Исправлена коммутативность {dot,multiply,inner}(скаляр, matrix_of_objs)

  • gh-4466: Отложить проверку размера npyiter, когда размер может измениться

  • gh-4485: Буферизованный шаг был ошибочно помечен как исправленный

  • gh-4354: byte_bounds не работает с типами данных datetime

  • gh-4486: ошибка сегментации/ошибка при преобразовании объектов datetime64 высокой точности

  • gh-4428: einsum(None, None, None, None) вызывает segfault

  • gh-4134: неинициализированное использование для редукций объектов размера 1

Изменения#

NDIter#

Когда NpyIter_RemoveAxis теперь вызывается, диапазон итератора будет сброшен.

Когда отслеживается мультииндекс и итератор не буферизован, можно использовать NpyIter_RemoveAxis. В этом случае итератор может уменьшиться в размере. Поскольку общий размер итератора ограничен, итератор может быть слишком большим до этих вызовов. В этом случае его размер будет установлен в -1 и ошибка выдается не во время создания, а при удалении мультииндекса, установке диапазона итератора или получении следующей функции.

Это не влияет на код, который работает в настоящее время, но подчеркивает необходимость проверки на возврат ошибки, если эти условия могут возникнуть. В большинстве случаев массивы, по которым выполняется итерация, такие же большие, как итератор, так что такая проблема не может возникнуть.

Необязательное уменьшение подробности вывода для np.distutils#

Установить numpy.distutils.system_info.system_info.verbosity = 0 и затем вызовы numpy.distutils.system_info.get_info('blas_opt') не будет выводить ничего на выход. Это в основном для других пакетов, использующих numpy.distutils.

Устаревшие функции#

C-API#

Утилитные функции npy_PyFile_Dup и npy_PyFile_DupClose сломаны из-за внутренней буферизации, которую python 3 применяет к своим файловым объектам. Чтобы исправить это, в npy_3kcompat.h объявлены две новые функции npy_PyFile_Dup2 и npy_PyFile_DupClose2, а старые функции устарели. Из-за хрупкой природы этих функций рекомендуется по возможности использовать API python.