SciPy - Базовая функциональность

По умолчанию все функции NumPy доступны через пространство имен SciPy. При импорте SciPy нет необходимости явно импортировать функции NumPy. Главный объект NumPy - это однородный многомерный массив. Это таблица элементов (обычно чисел) одного типа, проиндексированных набором положительных целых чисел. В NumPy размеры называются осями. Номерaxes называется как rank.

Теперь давайте пересмотрим базовую функциональность векторов и матриц в NumPy. Поскольку SciPy построен на основе массивов NumPy, необходимо понимание основ NumPy. Поскольку большинство разделов линейной алгебры имеет дело только с матрицами.

NumPy Вектор

Вектор можно создать несколькими способами. Некоторые из них описаны ниже.

Преобразование объектов, подобных массиву 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]])

Сопряженное транспонирование матрицы

Эта функция возвращает (сложное) сопряженное транспонирование self. Рассмотрим следующий пример.

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]])

Когда мы транспонируем матрицу, мы создаем новую матрицу, строки которой являются столбцами оригинала. С другой стороны, сопряженная транспозиция меняет местами строку и индекс столбца для каждого элемента матрицы. Обратной матрицей является матрица, которая при умножении на исходную матрицу дает единичную матрицу.