Простой Python. современный стиль программирования - читать онлайн бесплатно полную версию книги . Страница 325

функциям библиотеки NumPy. Например, вы можете инициализировать все элементы

массива любым значением с помощью функции zeros() и оператора сложения:

>>> from numpy import *

>>> a = zeros((2, 5)) + 17.0

>>> a

array([[ 17., 17., 17., 17., 17.],

[ 17., 17., 17., 17., 17.]])

420

Приложение В. Py в науке

Линейная алгебра

NumPy содержит множество функций линейной алгебры. Например, определим

такую систему линейных уравнений:

4x + 5y = 20

x + 2y = 13

Как мы можем найти х и у? Создадим два массива:

 коэффициенты (множители для х и у);

 зависимые переменные (правая часть уравнения):

>>> import numpy as np

>>> coefficients = np.array([ [4, 5], [1, 2] ])

>>> dependents = np.array([20, 13])

Теперь используем функцию solve() модуля linalg:

>>> answers = np.linalg.solve(coefficients, dependents)

>>> answers

array([ -8.33333333, 10.66666667])

В результате получим, что x примерно равен –8.3, а у примерно равен 10.6.

Являются ли эти числа решениями уравнения?

>>> 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 также имеет модули для работы с многочленами, преобразованиями

Фурье, статистикой и распределением вероятностей.

Библиотека IPython

421

Библиотека SciPy

Библиотека SciPy (http://www.scipy.org/) создана на основе NumPy и имеет даже

больше функций. Релиз SciPy (http://www.scipy.org/scipylib/download.html) содер-

жит NumPy, SciPy, Pandas (ее мы рассмотрим позже в этой главе) и другие биб-

лиотеки.