-->

Язык программирования Python

На нашем литературном портале можно бесплатно читать книгу Язык программирования Python, Сузи Роман Арвиевич-- . Жанр: Программирование. Онлайн библиотека дает возможность прочитать весь текст и даже без регистрации и СМС подтверждения на нашем литературном портале bazaknig.info.
Язык программирования Python
Название: Язык программирования Python
Дата добавления: 16 январь 2020
Количество просмотров: 495
Читать онлайн

Язык программирования Python читать книгу онлайн

Язык программирования Python - читать бесплатно онлайн , автор Сузи Роман Арвиевич

Курс посвящен одному из бурно развивающихся и популярных в настоящее время сценарных языков программирования — Python. Язык Python позволяет быстро создавать как прототипы программных систем, так и сами программные системы, помогает в интеграции программного обеспечения для решения производственных задач. Python имеет богатую стандартную библиотеку и большое количество модулей расширения практически для всех нужд отрасли информационных технологий. Благодаря ясному синтаксису изучение языка не составляет большой проблемы. Написанные на нем программы получаются структурированными по форме, и в них легко проследить логику работы. На примере языка Python рассматриваются такие важные понятия как: объектно–ориентированное программирование, функциональное программирование, событийно–управляемые программы (GUI–приложения), форматы представления данных (Unicode, XML и т.п.). Возможность диалогового режима работы интерпретатора Python позволяет существенно сократить время изучения самого языка и перейти к решению задач в соответствующих предметных областях. Python свободно доступен для многих платформ, а написанные на нем программы обычно переносимы между платформами без изменений. Это обстоятельство позволяет применять для изучения языка любую имеющуюся аппаратную платформу.

Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала

1 ... 20 21 22 23 24 25 26 27 28 ... 62 ВПЕРЕД
Перейти на страницу:

>>> add.reduce([[1, 2], [3, 4]], 1) # т.е. [1+2 3+4]

array([3, 7])

>>> add.accumulate([1, 2, 3, 4]) # т.е. [1 1+2 1+2+3 1+2+3+4]

array([ 1, 3, 6, 10])

>>> add.reduceat(range(10), [0, 3, 6]) # т.е. [0+1+2 3+4+5 6+7+8+9]

array([ 3, 12, 30])

>>> add.outer([1,2], [3,4]) # т.е. [[1+3 1+4] [2+3 2+4]]

array([[4, 5],

[5, 6]])

Методы accumulate(), reduce() и reduceat() принимают необязательный аргумент — номер размерности, используемой для соответствующего действия. По умолчанию применяется нулевая размерность.

Универсальные функции, помимо одного или двух необходимых параметров, позволяют задавать и еще один аргумент, для приема результата функции. Тип третьего аргумента должен строго соответствовать типу результата. Например, функция sqrt() даже от целых чисел имеет тип Float.

Листинг

>>> from Numeric import array, sqrt, Float

>>> a = array([0, 1, 2])

>>> r = array([0, 0, 0], Float)

>>> sqrt(a, r)

array([ 0. , 1. , 1.41421356])

>>> print r

[ 0. 1. 1.41421356]

Предупреждение:

Не следует использовать в качестве приемника результата массив, который фигурирует в предыдущих аргументах функции, так как при этом результат может быть испорчен. Следующий пример показывает именно такой вариант:

>>> import Numeric

>>> m = Numeric.array([0, 0, 0, 1, 0, 0, 0, 0])

>>> add(m[: — 1], m[1:], m[1:])

array([0, 0, 1, 1, 1, 1, 1])В таких неоднозначных случаях необходимо использовать промежуточный массив.

Функции модуля Numeric

Следующие функции модуля Numeric являются краткой записью некоторых наиболее употребительных сочетаний функций и методов:

Функция Аналог функции

sum(a, axis) add.reduce(a, axis)

cumsum(a, axis) add.accumulate(a, axis)

product(a, axis) multiply.reduce(a, axis)

cumproduct(a, axis) multiply.accumulate(a, axis)

alltrue(a, axis) logical_and.reduce(a, axis)

sometrue(a, axis) logical_or.reduce(a, axis)

Примечание:

Параметр axis указывает размерность.

Функции для работы с массивами

Функций достаточно много, поэтому подробно будут рассмотрены только две из них, а остальные сведены в таблицу.

Функция Numeric.take()

Функция Numeric.take() позволяет взять часть массива по заданным на определенном измерении индексам. По умолчанию номер измерения (третий аргумент) равен нулю.

Листинг

>>> import Numeric

>>> a = Numeric.reshape(Numeric.arrayrange(25), (5, 5))

>>> print a

[[ 0 1 2 3 4]

[ 5 6 7 8 9]

[10 11 12 13 14]

[15 16 17 18 19]

[20 21 22 23 24]]

>>> print Numeric.take(a, [1], 0)

[ [5 6 7 8 9]]

>>> print Numeric.take(a, [1], 1)

[[ 1]

[ 6]

[11]

[16]

[21]]

>>> print Numeric.take(a, [[1,2],[3,4]])

[[[ 5 6 7 8 9]

[10 11 12 13 14]]

[[15 16 17 18 19]

[20 21 22 23 24]]]

В отличие от среза, функция Numeric.take() сохраняет размерность массива, если конечно, структура заданных индексов одномерна. Результат Numeric.take(a, [[1,2],[3,4]]) показывает, что взятые по индексам части помещаются в массив со структурой самих индексов, как если бы вместо 1 было написано [5 6 7 8 9], а вместо 2 — [10 11 12 13 14] и т.д.

Функции Numeric.diagonal() и Numeric.trace()

Функция Numeric.diagonal() возвращает диагональ матрицы. Она имеет следующие аргументы:

a Исходный массив.

offset Смещение вправо от «главной» диагонали (по умолчанию 0).

axis1 Первое из измерений, на которых берется диагональ (по умолчанию 0).

axis2 Второе измерение, образующее вместе с первым плоскость, на которой и берется диагональ. По умолчанию axis2=1.

Функция Numeric.trace() (для вычисления следа матрицы) имеет те же аргументы, но суммирует элементы на диагонали. В примере ниже рассмотрены обе эти функции:

Листинг

>>> import Numeric

>>> a = Numeric.reshape(Numeric.arrayrange(16), (4, 4))

>>> print a

[[ 0 1 2 3]

[ 4 5 6 7]

[ 8 9 10 11]

[12 13 14 15]]

>>> for i in range(-3, 4):

… print «Sum», Numeric.diagonal(a, i), "=", Numeric.trace(a, i)

Sum [12] = 12

Sum [ 8 13] = 21

Sum [ 4 9 14] = 27

Sum [ 0 5 10 15] = 30

Sum [ 1 6 11] = 18

Sum [2 7] = 9

Sum [3] = 3

Функция Numeric.choose()

Эта функция использует один массив с целыми числами от 0 до n для выбора значения из одного из заданных массивов:

Листинг

>>> a = Numeric.identity(4)

>>> b0 = Numeric.reshape(Numeric.arrayrange(16), (4, 4))

>>> b1 = -Numeric.reshape(Numeric.arrayrange(16), (4, 4))

>>> print Numeric.choose(a, (b0, b1))

[[ 0 1 2 3]

[ 4 -5 6 7]

[ 8 9–10 11]

[ 12 13 14–15]]

Свод функций модуля Numeric

Следующая таблица приводит описания функций модуля Numeric.

Функция и ее аргументы Назначение функции

allclose(a, b[, eps[, A]]) Сравнение a и b с заданными относительными eps и абсолютными A погрешностями. По умолчанию eps равен 1.0e–1, а A = 1.0e–8.

alltrue(a[, axis]) Логическое И по всей оси axis массива a

argmax(a[, axis]) Индекс максимального значения в массиве по заданному измерению axis

argmin(a[, axis]) Индекс минимального значения в массиве по заданному измерению axis

argsort(a[, axis]) Индексы отсортированного массива, такие, что take(a,argsort(a, axis),axis) дает отсортированный массив a, как если бы было выполнено sort(a, axis)

array(a[, type]) Создание массива на основе последовательности a данного типа type

arrayrange(start[, stop[, step[, type]]]) Аналог range() для массивов

asarray(a[, type[, savespace]]) То же, что и array(), но не создает новый массив, если a уже является массивом.

choose(a, (b0,…,bn)) Создает массив на основе элементов, взятых по индексам из a (индексы от 0 до n включительно). Формы массивов a, b1, …, bn должны совпадать

clip(a, a_min, a_max) Обрубает значения массива a так, чтобы они находились между значениями из a_min и a_max поэлементно

compress(cond, a[, axis]) Возвращает массив только из тех элементов массива a, для которых условие cond истинно (не нуль)

concatenate(a[, axis]) Соединение двух массивов (конкатенация) по заданному измерению axis (по умолчанию — по нулевой)

convolve(a, b[, mode]) Свертка двух массивов. Аргумент mode может принимать значения 0, 1 или 2

cross_correlate(a, b[, mode]) Взаимная корреляция двух массивов. Параметр mode может принимать значения 0, 1 или 2

cumproduct(a[, axis]) Произведение по измерению axis массива a с промежуточными результатами

cumsum(a[, axis]) Суммирование с промежуточными результатами

diagonal(a[, k[, axis1[, axis2]]]) Взятие k–й диагонали массива a в плоскости измерений axis1 и axis2

dot(a, b) Внутреннее (матричное) произведение массивов. По определению: innerproduct(a, swapaxes(b, — 1, — 2)), т.е. с переставленными последними измерениями, как и должно быть при перемножении матриц

dump(obj, file) Запись массива a (в двоичном виде) в открытый файловый объект file. Файл должен быть открыт в бинарном режиме. В файл можно записать несколько объектов подряд

dumps(obj) Строка с двоичным представлением объекта obj

fromfunction(f, dims) Строит массив, получая информацию от функции f(), в качестве аргументов которой выступают значения кортежа индексов. Фактически является сокращением для f(*tuple(indices(dims)))

fromstring(s[, count[, type]]) Создание массива на основе бинарных данных, хранящихся в строке

identity(n) Возвращает двумерный массив формы (n, n)

1 ... 20 21 22 23 24 25 26 27 28 ... 62 ВПЕРЕД
Перейти на страницу:
Комментариев (0)
название