Примечания к выпуску 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.