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

Тут можно читать онлайн Array Array - Язык программирования Python - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Язык программирования Python
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    4/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Array Array - Язык программирования Python краткое содержание

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

Язык программирования Python - читать онлайн бесплатно полную версию (весь текст целиком)

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

Интервал:

Закладка:

Сделать

Срезы

Объекты–массивы Numeric используют расширенный синтаксис выделения среза. Следующие примеры иллюстрируют различные варианты записи срезов. Функция Numeric.arrayrange() является аналогом range() для массивов.

Листинг

>>> import Numeric

>>> a = Numeric.arrayrange(24) + 1

>>> a.shape = (4, 6)

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

>>> print a[1,2] # элемент 1,2

9

>>> print a[1,:] # строка 1

[ 7 8 9 10 11 12]

>>> print a[1] # тоже строка 1

[ 7 8 9 10 11 12]

>>> print a[:,1] # столбец 1

[ 2 8 14 20]

>>> print a[-2,:] # предпоследняя строка

[13 14 15 16 17 18]

>>> print a[0:2,1:3] # окно 2x2

[[2 3]

[8 9]]

>>> print a[1,::3] # каждый третий элемент строки 1

[ 7 10]

>>> print a[:,:: — 1] # элементы строк в обратном порядке

[[ 6 5 4 3 2 1]

[12 11 10 9 8 7]

[18 17 16 15 14 13]

[24 23 22 21 20 19]]

Срез не копирует массив (как это имеет место со списками), а дает доступ к некоторой части массива. Далее в примере меняется на 0 каждый третий элемент строки 1:

Листинг

>>> a[1,::3] = Numeric.array([0,0])

>>> print a

[[ 1 2 3 4 5 6]

[ 0 8 9 0 11 12]

[13 14 15 16 17 18]

[19 20 21 22 23 24]]

В следующих примерах находит применение достаточно редкая синтаксическая конструкция: срез с многоточием (Ellipsis). Многоточие ставится для указания произвольного числа пропущенных размерностей (:,:,…,:):

Листинг

>>> import Numeric

>>> a = Numeric.arrayrange(24) + 1

>>> a.shape = (2,2,2,3)

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

>>> print a[0,…] # 0–й блок

[[[ 1 2 3]

[ 4 5 6]]

[[ 7 8 9]

[10 11 12]]]

>>> print a[0,:,:,0] # срез по первой и последней размерностям

[[ 1 4]

[ 7 10]]

>>> print a[0,…,0] # то же, но с использованием многоточия

[[ 1 4]

[ 7 10]]

Универсальные функции

Модуль Numeric определяет набор функций для применения к элементам массива. Функции применимы не только к массивам, но и к последовательностям (к сожалению, итераторы пока не поддерживаются). В результате получаются массивы.

Функция Описание

add(x, y), subtract(x, y) Сложение и вычитание

multiply(x, y), divide(x, y) Умножение и деление

remainder(x, y), fmod(x, y) Получение остатка от деления (для целых чисел и чисел с плавающей запятой)

power(x) Возведение в степень

sqrt(x) Извлечение корня квадратного

negative(x), absolute(x), fabs(x) Смена знака и абсолютное значение

ceil(x), floor(x) Наименьшее (наибольшее) целое, большее (меньшее) или равное аргументу

hypot(x, y) Длина гипотенузы (даны длины двух катетов)

sin(x), cos(x), tan(x) Тригонометрические функции

arcsin(x), arccos(x), arctan(x) Обратные тригонометрические функции

arctan2(x, y) Арктангенс от частного аргумента

sinh(x), cosh(x), tanh(x) Гиперболические функции

arcsinh(x), arccosh(x), arctanh(x) Обратные гиперболические функции

exp(x) Экспонента (ex)

log(x), log10(x) Натуральный и десятичный логарифмы

maximum(x, y), minimum(x, y) Максимум и минимум

conjugate(x) Сопряжение (для комплексных чисел)

equal(x, y), not_equal(x, y) Равно, не равно

greater(x, y), greater_equal(x, y) Больше, больше или равно

less(x, y), less_equal(x, y) Меньше, меньше или равно

logical_and(x, y), logical_or(x, y) Логические И, ИЛИ

logical_xor(x, y) Логическое исключающее ИЛИ

logical_not(x) Логические НЕ

bitwise_and(x, y), bitwise_or(x, y) Побитовые И, ИЛИ

bitwise_xor(x, y) Побитовое исключающее ИЛИ

invert(x) Побитовая инверсия

left_shift(x, n), right_shift(x, n) Побитовые сдвиги влево и вправо на n битов

Перечисленные функции являются объектами типа ufunc и применяются к массивам поэлементно. Эти функции имеют специальные методы:

accumulate() Аккумулирование результата.

outer() Внешнее «произведение».

reduce() Сокращение.

reduceat() Сокращение в заданных точках.

Пример с функцией add() позволяет понять смысл универсальной функции и ее методов:

Листинг

>>> from Numeric import add

>>> add([[1, 2], [3, 4]], [[1, 0], [0, 1]])

array([[2, 2],

[3, 5]])

>>> add([[1, 2], [3, 4]], [1, 0])

array([[2, 2],

[4, 4]])

>>> add([[1, 2], [3, 4]], 1)

array([[2, 3],

[4, 5]])

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

10

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

array([4, 6])

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

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Array Array читать все книги автора по порядку

Array Array - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Язык программирования Python, автор: Array Array. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x