Простой Python. Современный стиль программирования (Любанович) - страница 259

>>>> 4 * answers[0] + 5 * answers[1]

>20.0

>>>> 1 * answers[0] + 2 * answers[1]

>13.0

Так и есть. Для того чтобы напечатать меньше текста, вы также можете указать NumPy найти скалярное произведение массивов:

>>>> product = np.dot(coefficients, answers)

>>>> product

>array([20.,··13.])

Если решение верно, значения массива product должны быть близки к значениям массива dependents. Вы можете использовать функцию allclose(), чтобы проверить, являются ли массивы хотя бы приблизительно равными (они могут быть не полностью равными из-за округления чисел с плавающей точкой):

>>>> np.allclose(product, dependents)

>True

NumPy также имеет модули для работы с многочленами, преобразованиями Фурье, статистикой и распределением вероятностей.

Библиотека SciPy

Библиотека SciPy (http://www.scipy.org/) создана на основе NumPy и имеет даже больше функций. Релиз SciPy (http://www.scipy.org/scipylib/download.html) содержит NumPy, SciPy, Pandas (ее мы рассмотрим позже в этой главе) и другие библиотеки.

SciPy содержит множество модулей, включая те, которые выполняют следующие задачи:

• оптимизацию;

• ведение статистики;

• интерполяцию;

• линейную регрессию;

• интеграцию;

• обработку изображений;

• обработку сигналов.

Если вы уже работали с другими научными инструментами для компьютера, то обнаружите, что Python, NumPy и SciPy охватывают некоторые области, с которыми работает также коммерческий MatLab (http://www.mathworks.com/products/matlab/) или приложение с открытым исходным кодом R (http://www.r-project.org/).

Библиотека SciKit

Как и предыдущая библиотека, SciKit — это группа научных пакетов, построенная на основе SciPy. SciKit (https://scikits.appspot.com/scikits) специализируется на машинном обучении. Она поддерживает моделирование, классификацию, кластеризацию и разнообразные алгоритмы.

Библиотека IPython

Библиотека IPython (http://ipython.org/) стоит вашего времени по многим причинам. Вот некоторые из них.

• Наличие улучшенного интерактивного интерпретатора (альтернатива примерам с приглашением >>>, которые мы использовали на протяжении этой книги).

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

• Поддержка параллельных вычислений (http://bit.ly/parallel-comp).

Рассмотрим интерпретатор и блокноты.

Лучший интерпретатор

Существуют разные версии IPython для Python 2 и Python 3, обе они устанавливаются Anaconda или другой современной научной сборкой Python. Используйте iPython 3 для версии Python 3:

>$ ipython3

>Python 3.3.3 (v3.3.3:c3896275c0f6, Nov 16 2013, 23:39:35)

>Type "copyright", "credits" or "license" for more information.