массива любым значением с помощью функции 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 (ее мы рассмотрим позже в этой главе) и другие биб-
лиотеки.