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

Основные моменты#

Совместимость с Python 3#

Это первый выпуск NumPy, совместимый с Python 3. Поддержка Python 3 и Python 2 осуществляется из единой кодовой базы. Подробные заметки об изменениях можно найти на https://web.archive.org/web/20100814160313/http://projects.scipy.org/numpy/browser/trunk/doc/Py3K.txt.

Обратите внимание, что фреймворк тестирования Numpy полагается на nose, который еще не имеет совместимого с Python 3 релиза. Рабочая ветка nose для Python 3 может быть найдена на https://web.archive.org/web/20100817112505/http://bitbucket.org/jpellerin/nose3/ однако.

Перенос SciPy на Python 3 ожидается завершённым в ближайшее время.

PEP 3118 совместимость#

Новый буферный протокол, описанный в PEP 3118, полностью поддерживается в этой версии Numpy. В версиях Python >= 2.6 массивы Numpy предоставляют буферный интерфейс, а функции array(), asarray() и другие принимают новые буферы в качестве входных данных.

Новые возможности#

Предупреждение при приведении комплексного числа к вещественному#

NumPy теперь выдаёт numpy.ComplexWarning когда комплексное число приводится к действительному числу. Например:

>>> x = np.array([1,2,3])
>>> x[:2] = np.array([1+2j, 1-2j])
ComplexWarning: Casting complex values to real discards the imaginary part

Приведение действительно отбрасывает мнимую часть, и это может быть нежелательным поведением в некоторых случаях, отсюда предупреждение. Это предупреждение можно отключить стандартным способом:

>>> import warnings
>>> warnings.simplefilter("ignore", np.ComplexWarning)

Метод dot для ndarrays#

Ndarrays теперь имеют скалярное произведение также в качестве метода, что позволяет записывать цепочки матричных произведений как

>>> a.dot(b).dot(c)

вместо более длинной альтернативы

>>> np.dot(a, np.dot(b, c))

функция linalg.slogdet#

Функция slogdet возвращает знак и логарифм определителя матрицы. Поскольку определитель может включать произведение многих малых/больших значений, результат часто более точен, чем полученный простым умножением.

новый заголовок#

Новый заголовочный файл ndarraytypes.h содержит символы из ndarrayobject.h, которые не зависят от макросов PY_ARRAY_UNIQUE_SYMBOL и NO_IMPORT/_ARRAY. В основном, это типы, определения типов и перечисления; вызовы функций массива остаются в ndarrayobject.h. Это позволяет пользователям включать типы и перечисления, связанные с массивами, без необходимости беспокоиться о расширениях макросов и их побочных эффектах.

Изменения#

polynomial.polynomial#

  • Функции polyint и polyder теперь проверяют, что указанное количество интегрирований или дифференцирований является неотрицательным целым числом. Число 0 является допустимым значением для обеих функций.

  • В класс Polynomial добавлен метод degree.

  • В класс Polynomial добавлен метод trimdeg. Он работает аналогично truncate, за исключением того, что аргументом является желаемая степень результата, а не количество коэффициентов.

  • Polynomial.fit теперь использует None как домен по умолчанию для подгонки. Домен по умолчанию Polynomial можно указать, используя [] как значение домена.

  • Веса могут использоваться как в polyfit, так и в Polynomial.fit

  • В класс Polynomial добавлен метод linspace для упрощения построения графиков.

  • Функция polymulx была добавлена.

polynomial.chebyshev#

  • Функции chebint и chebder теперь проверяют, что указанное количество интегрирований или дифференцирований является неотрицательным целым числом. Число 0 является допустимым значением для обеих функций.

  • В класс Chebyshev добавлен метод degree.

  • В класс Чебышева добавлен метод trimdeg. Он работает как truncate, за исключением того, что аргументом является желаемая степень результата, а не количество коэффициентов.

  • Chebyshev.fit теперь использует None как домен по умолчанию для подгонки. Домен по умолчанию Chebyshev может быть указан с помощью [] в качестве значения домена.

  • Веса могут использоваться как в chebfit, так и в Chebyshev.fit

  • Метод linspace был добавлен в класс Chebyshev для облегчения построения графиков.

  • Добавлена функция chebmulx.

  • Добавлены функции для точек Чебышёва первого и второго рода.

гистограмма#

После двухлетнего переходного периода старое поведение функции гистограммы было прекращено, и ключевое слово «new» было удалено.

correlate#

Старое поведение correlate было устаревшим в версии 1.4.0, новое поведение (обычное определение для взаимной корреляции) теперь является поведением по умолчанию.