Примечания к выпуску NumPy 1.16.4#
Выпуск NumPy 1.16.4 исправляет ошибки, о которых сообщалось в версии 1.16.3, а также переносит несколько улучшений из основной ветки, которые кажутся уместными для серии выпусков, которая является последней, поддерживающей Python 2.7. Колеса на PyPI связаны с OpenBLAS v0.3.7-dev, что должно исправить проблемы на процессорах серии Skylake.
Разработчики, собирающие этот выпуск, должны использовать Cython >= 0.29.2 и, если используется OpenBLAS, OpenBLAS > v0.3.7. Поддерживаемые версии Python: 2.7 и 3.5-3.7.
Новые устаревания#
Флаг записи массивов, обёрнутых в C-API#
Когда массив создается из C-API для обертывания указателя на данные, единственное
указание на возможность чтения-записи данных — это writeable
флаг, установленный при создании. Опасно принудительно устанавливать флаг в записываемый. В будущем будет невозможно переключить флаг записи на True
из python. Это устаревание не должно затрагивать многих пользователей, поскольку массивы, созданные таким образом, очень редки на практике и доступны только через C-API NumPy.
Примечания по совместимости#
Возможные изменения в потоке случайных чисел#
Из-за ошибок в применении логарифма к случайным числам с плавающей запятой,
поток может измениться при выборке из np.random.beta, np.random.binomial,
np.random.laplace, np.random.logistic, np.random.logseries или
np.random.multinomial если в основном потоке случайных чисел MT19937 генерируется 0.
Вероятность 1 из \(10^{53}\) вероятность этого события, и поэтому вероятность того, что
поток изменится для любого заданного начального значения, чрезвычайно мала. Если в базовом генераторе встречается 0, то некорректное значение, произведённое (либо np.inf
или np.nan) теперь удаляется.
Изменения#
numpy.lib.recfunctions.structured_to_unstructured не сжимает представления с одним полем#
Ранее structured_to_unstructured(arr[['a']]) привело бы к сжатому
результату, несовместимому с structured_to_unstructured(arr[['a', b']]). Это было случайно. Прежнее поведение можно сохранить с помощью
structured_to_unstructured(arr[['a']]).squeeze(axis=-1) или гораздо проще,
arr['a'].
Участники#
Всего 10 человек внесли вклад в этот релиз. Люди со знаком "+" рядом с их именами внесли патч впервые.
Чарльз Харрис
Eric Wieser
Деннис Золло +
Hunter Damron +
Jingbei Li +
Кевин Шеппард
Matti Picus
Nicola Soranzo +
Себастьян Берг
Tyler Reddy
Объединенные pull request'ы#
Всего для этого релиза было объединено 16 pull-запросов.
#13392: BUG: В некоторых версиях PyPy отсутствует PyStructSequence_InitType2.
#13394: MAINT, DEP: Исправить устаревшее
assertEquals()#13396: BUG: Исправление structured_to_unstructured для типов с одним полем (обратный порт)
#13549: BLD: Снова сделать прохождение CI с pytest 4.5
#13552: TST: Зарегистрировать маркеры в conftest.py.
#13559: BUG: Удаляет ValueError для пустых kwargs в arraymultiter_new
#13560: BUG: Добавить TypeError к принимаемым исключениям в crackfortran.
#13561: BUG: Обработка подмассивов в descr_to_dtype
#13562: BUG: Защитить генераторы от log(0.0)
#13563: BUG: Всегда возвращать представления из structured_to_unstructured, когда…
#13564: BUG: Перехват stderr при проверке версии компилятора
#13565: BUG: longdouble(int) не работает
#13587: BUG: distutils/system_info.py исправление отсутствующего импорта subprocess (#13523)
#13620: BUG,DEP: Исправление установки флага writeable для массивов без base
#13641: MAINT: Подготовка к выпуску версии 1.16.4.
#13644: BUG: особый случай массивов объектов при выводе относительной и абсолютной ошибки