Език на Python

Функцията LinearAlgebra.solve_linear_equations () решава линейни уравнения с формата ax = b за дадените аргументи a и b:

>>> импортиране на Numeric, LinearAlgebra

>>> a = Numeric.array ([[1.0, 2.0], [0.0, 1.0]])

>>> b = Numeric.array ([1.2, 1.5])

>>> x = LinearAlgebra.solve_linear_equations (a, b)

>>> отпечатайте "Проверка:", Numeric.dot (a, x) - b

Когато матрицата a има нулев детерминант, системата има повече от едно решение и се извежда изключение LinearAlgebraError:

>>> a = Numeric.array ([[1.0, 2.0], [0.5, 1.0]])

>>> x = LinearAlgebra.solve_linear_equations (a, b) Traceback (последно последно обаждане):

Файл ", ред 1, в ?

Файл "/usr/local/lib/python2.3/site-packages/Numeric/LinearAlgebra.py", ред 98,

в apply_linear_equations повдигат LinAlgError, 'Единична матрица' LinearAlgebra.LinAlgError: Единична матрица

Функцията LinearAlgebra.inverse () намира обратната страна на матрица. Човек обаче не трябва да решава

линейни уравнения, използващи LinearAlgebra.inverse () чрез умножаване по обратната матрица, както е определено чрез LinearAlgebra.solve_linear_equations ():

връщане на решения_линейни_уравнения (a, Numeric.identity (a.shape [0]))

Функцията LinearAlgebra.eigenvalues ​​() намира собствените стойности на матрицата, а LinearAlgebra.eigenvectors () - двойка: собствени стойности, собствени вектори:

>>> от масив за числово импортиране, точка

>>> от LinearAlgebra импортиране на собствени стойности, собствени вектори

>>> отпечатайте "Собствени стойности:", lmd

Собствени стойности: [-3,76393202 -8,23606798]

>>> (lmd, v) = собствени вектори (a)

>>> печат "Собствени вектори:" Собствени вектори:

[[0.85065081 0.52573111] [-0.52573111 0.85065081]]

>>> отпечатайте "Проверка:", точка (a, v [0]) - v [0] * lmd [0] Проверка: [-4.44089210e-16 2.22044605e-16]

Проверката показва, че идентичността се задоволява с достатъчно висока точност (числата са много малки, почти нула): собствените стойности и векторите са намерени правилно .

Този модул съдържа функции за генериране на масиви от случайни числа с различни разпределения и свойства. Те могат да се използват за математическо моделиране .

Функцията RandomArray.random () създава масиви от псевдослучайни числа, равномерно разположени в интервала (0, 1):

>>> отпечатайте RandomArray.random (10) # масив от 10 псевдослучайни числа [0.28374212 0.19260929 0.07045474 0.30547682 0.10842083 0.14049676

0,01347435 0,37043894 0,47362471 0,37673479]

>>> отпечатайте RandomArray.random ([3,3]) # 3x3 масив от псевдослучайни числа

Функция RandomArray.randint (), за да получи масив от равномерно разпределени числа от даден интервал и дадена форма:

>>> отпечатайте RandomArray.randint (1, 10, [10]) [8 1 9 9 7 5 2 5 3 2]

>>> отпечатайте RandomArray.randint (1, 10, [10]) [2 2 5 5 7 7 3 4 3 7]

Можете също така да получите произволни пермутации, използвайки RandomArray.permutation ():

>>> отпечатайте RandomArray.permutation (6) [4 0 1 3 2 5]

>>> отпечатайте RandomArray.permutation (6) [1 2 0 3 5 4]

Налични са и други разпределения за получаване на масив от нормално разпределени стойности с дадено средно и стандартно отклонение:

>>> отпечатайте RandomArray.normal (0, 1, 30)

[-1,0944078 1,24862444 0,20415567 -0,74283403 0,72461408 -0,57834256 0,30957144 0,8682853 1,10942173 -0,39661118 1,33383882 1,54818618 0,18814971 0,89728773 -0,86146659 0,0184834 -1,46222591 -0,78427434 1,09295738 -1,09731364 1,34913492 -0,75001568 -0,11239344 2,73692131 -0,19881676 -0,49245331 1,54091263 -1,81212211 0,46522358 -0,08338884]

Следващата таблица изброява функции за други дистрибуции:

Функция и нейните аргументи

двучлен (опити, p, форма = [])

Разпределение на хи-квадрат

multivariate_normal (средно, cov, shape = [])

Многовариантно нормално разпределение

отрицателен_биномиален (опити, p, форма = [])

noncentral_F (dfn, dfd, nconc, shape = [])

F-разпределение извън центъра

Извън центъра хи - квадрат разпределение

нормално (средно, std, форма = [])

randint (min, max = None, shape = [])

Равномерно разпределение през интервала

произволни_цели числа (макс., мин. = 1, форма = [])

Стандартно нормално разпределение

равномерно (мин., макс., форма = [])

В тази лекция беше обсъден набор от модули за числено изчисление. Модулът Numeric дефинира многомерен тип масив и много функции за работа с масиви. Също

бяха представени модули за линейна алгебра и моделиране на последователности от случайни числа с различни разпределения .

Сайт с цифров Python: http://www.pfdubois.com/numpy/

Лекция # 6: Обработка на текст. Регулярни изрази. Unicode

Обработката на текст се отнася до анализ, трансформация, търсене, генериране на текстова информация. В по-голямата си част работата с естествени текстове няма да бъде по-дълбока, отколкото е възможно без системи за изкуствен интелект. Също така тук

Трябва да се отбележи, че за Python са създадени и модули за работа с естествени езици, както и за лингвистични изследвания. Nltk (инструментариумът за естествен език) е добро изследване на казуси.

Заслужава да се отбележи проектът PyParsing (сайт: http://pyparsing.sourceforge.net), с който можете да организирате обработка на текст според дадена граматика .

Низовете в Python са тип данни, специално проектиран за обработка на текстова информация. Низът може да съдържа произволно дълъг текст (ограничен от наличната памет).

По-новите версии на Python имат два типа низове: обикновени низове (последователност от байтове) и Unicode низове (последователност от символи). В Unicode низ всеки знак може да заема 2 или 4 байта в паметта, в зависимост от настройките по време на компилиране. Четирибайтовите символи се използват главно за източни езици .

В езика и стандартната библиотека, с малки изключения, низовете и Unicode низовете са взаимозаменяеми; в родните приложения трябва да се избягват проверки на типа за съвместимост и с двата вида низове. Ако е необходимо, можете да проверите дали основният (за низове и Unicode низове) тип е в isinstance (s, basestring) .

Когато използвате Unicode низове, човек трябва психически да приеме гледната точка, коя Unicode представяне е основната, а всички останали кодировки са само специални случаи на текстово представяне, които не могат да предадат всички символи. Без такава настройка няма да е ясно защо преобразуването от осембитовото кодиране се нарича декодиране. За външно представяне можете успешно да използвате кодиране UTF-8, въпреки че, разбира се, това зависи от решаваните задачи .

За да могат Unicode литералите в програма на Python да бъдат интерпретирани правилно от интерпретатора, трябва да посочите кодирането в началото на програмата, като напишете в първия или втория ред нещо като следното (за Unix/Linux):