По умолчанию все функции NumPy были доступны через пространство имен SciPy. При импорте SciPy не требуется явно импортировать функции NumPy. Основным объектом NumPy является однородный многомерный массив. Это таблица элементов (обычно чисел) одного типа, проиндексированных набором натуральных чисел. В NumPy размеры называются осями. Количество осей называется рангом .
Теперь давайте пересмотрим основные функциональные возможности векторов и матриц в NumPy. Поскольку SciPy построен поверх массивов NumPy, необходимо понимание основ NumPy. Поскольку большинство частей линейной алгебры имеет дело только с матрицами.
NumPy Vector
Вектор может быть создан несколькими способами. Некоторые из них описаны ниже.
Преобразование массивоподобных объектов Python в NumPy
Давайте рассмотрим следующий пример.
import numpy as np list = [1,2,3,4] arr = np.array(list) print arr
Вывод вышеуказанной программы будет следующим.
[1 2 3 4]
Внутреннее создание массива NumPy
NumPy имеет встроенные функции для создания массивов с нуля. Некоторые из этих функций описаны ниже.
Использование нулей ()
Функция нулей (форма) создаст массив, заполненный 0 значениями с указанной формой. По умолчанию dtype — это float64. Давайте рассмотрим следующий пример.
import numpy as np print np.zeros((2, 3))
Вывод вышеуказанной программы будет следующим.
array([[ 0., 0., 0.], [ 0., 0., 0.]])
Используя те ()
Функция ones (shape) создаст массив, заполненный 1 значением. Он идентичен нулям во всех остальных отношениях. Давайте рассмотрим следующий пример.
import numpy as np print np.ones((2, 3))
Вывод вышеуказанной программы будет следующим.
array([[ 1., 1., 1.], [ 1., 1., 1.]])
Использование arange ()
Функция arange () будет создавать массивы с регулярно увеличивающимися значениями. Давайте рассмотрим следующий пример.
import numpy as np print np.arange(7)
Вышеуказанная программа сгенерирует следующий вывод.
array([0, 1, 2, 3, 4, 5, 6])
Определение типа данных значений
Давайте рассмотрим следующий пример.
import numpy as np arr = np.arange(2, 10, dtype = np.float) print arr print "Array Data Type :",arr.dtype
Вышеуказанная программа сгенерирует следующий вывод.
[ 2. 3. 4. 5. 6. 7. 8. 9.] Array Data Type : float64
Использование linspace ()
Функция linspace () создаст массивы с указанным количеством элементов, которые будут равномерно распределены между указанными начальными и конечными значениями. Давайте рассмотрим следующий пример.
import numpy as np print np.linspace(1., 4., 6)
Вышеуказанная программа сгенерирует следующий вывод.
array([ 1. , 1.6, 2.2, 2.8, 3.4, 4. ])
матрица
Матрица — это специализированный двумерный массив, который сохраняет свою двумерную природу посредством операций. Он имеет определенные специальные операторы, такие как * (матричное умножение) и ** (матричная степень). Давайте рассмотрим следующий пример.
import numpy as np print np.matrix('1 2; 3 4')
Вышеуказанная программа сгенерирует следующий вывод.
matrix([[1, 2], [3, 4]])
Конъюгат транспонирования матрицы
Эта функция возвращает (сложную) сопряженную транспозицию себя . Давайте рассмотрим следующий пример.
import numpy as np mat = np.matrix('1 2; 3 4') print mat.H
Вышеуказанная программа сгенерирует следующий вывод.
matrix([[1, 3], [2, 4]])
Транспонирование матрицы
Эта функция возвращает транспонирование себя. Давайте рассмотрим следующий пример.
import numpy as np mat = np.matrix('1 2; 3 4') mat.T
Вышеуказанная программа сгенерирует следующий вывод.
matrix([[1, 3], [2, 4]])
Когда мы транспонируем матрицу, мы создаем новую матрицу, строки которой являются столбцами оригинала. Сопряженное преобразование, с другой стороны, чередует строку и индекс столбца для каждого элемента матрицы. Инверсия матрицы — это матрица, которая при умножении на исходную матрицу приводит к тождественной матрице.