Масив "Пітоні" (Python)

35 0 Новини високих технологій

Python - високорівнева мова програмування загального призначення. Підтримує не тільки ООП, але і також структурний, функціональний, імперативне, аспектно-орієнтоване програмування. Стандартна бібліотека містить багато інструментів для роботи з мережевими протоколами, текстовими кодуваннями, мультимедійними форматами, для розробки кроссплатформенних додатків.

Масив "Пітоні"

Одновимірний масив являє собою список елементів.
Масив "Пітоні" (Python)
Значення списку зазначаються між квадратних дужок[], перераховуються через кому. Будь-який елемент викликається по індексу. Елементами можуть присвоюватися нові значення. Так виглядає порожній список:
  • a =[]
  • Масив рядків "Пітоні" виглядає так:
  • Prime =['string1', 'string2', 'string3']
  • Prime[1]= 'string2'; //true
  • Функція len() повертає кількість елементів у списку.
  • len(Prime) == 4; //true
  • Для перерахування елементів масиву використовується цикл for. Його відмінність від Pascal в тому, що він перебирає саме елементи, а не їх індекси.
  • for elem in[1, 4, 67]
  • Для створення циклу використовується генератор заповнення списків. Записується у вигляді[значение массива for имя переменной in количество элементов]; Двовимірний масив в "Пітоні" створюється з допомогою вкладених генераторів. Виглядати це має приблизно наступним чином:
  • [[0 for j in range(m)]for i in range(n)]
  • Створення масиву в NumPy

    Для створення і модифікації масивів в "Пітоні" використовується бібліотека NumPy.
    Масив "Пітоні" (Python)
    Вона підтримує багатомірний масив і матриці, володіє великим набором пакетів для вирішення математичних завдань. А також забезпечує роботу з однорідними багатовимірними масивами і матрицями. Щоб отримати можливість користуватися функціями цього пакета, його необхідно імпортувати.


  • import numpy as np
  • Один з найбільш простих способів, як задати масив "Пітоні" - скористатися функцією array(). Вона створює об'єкт типу ndarray.
  • array = np.array(/* безліч елементів */)
  • Тепер array має типом ndarray. Це можна перевірити функцією array.type(). Вона прийняла в якості аргументу ім'я створеного масиву. Повернеться відповідь - . Щоб перевизначити тип, потрібно використовувати dtype=np.complex на етапі створення.
  • array2 = np.array([/*элементы*/, dtype=np.complex)
  • Если нужно задать массив, но его элементы на этом этапе неизвестны, он заполняется нулями функцией zeros(). Можно создать массив из единиц функцией ones(). В качестве аргументов принимается количество вложенных массивов и количество элементов внутри.


  • np.zeros(222)
  • Створить два масиву всередині, які містять по 2 елементи.
  • array([
  • [[0, 0]]
  • [[0, 0]]]
  • )
  • Щоб вивести масив на екран, використовується функція print(). Якщо масив занадто великий для печатки, NumPy приховує центральну частину і виводить тільки крайні значення. Щоб побачити весь масив, застосовується функція set_printoptions(). За умовчанням виводяться тільки перші 1000 елементів. Це значення вказується як аргумент з ключовим словом threshold.

    Базові операції NumPy

    Будь-які дії над елементами масиву в "Пітоні" передбачають створення нового масиву.
    Масив "Пітоні" (Python)
    Створений масив містить елементи, отримані в результаті виконання деяких дій над ними. Масиви можуть взаємодіяти тільки в тому випадку, коли мають однаковий розмір. Наприклад:
  • array1 = np.array([[1, 2, 3],[1, 2, 3]])
  • array2 = np.array([[1, 2, 3],[1, 2, 3],[1, 2, 3]])
  • При виконанні array1 + array2 компілятор виведе помилку, тому що розмір першого масиву - 2 а другого - 3.
  • array1 = np.array([1, 2, 5, 7])
  • array2 = arange([1, 5, 1])
  • Array1 + array2 поверне масив з елементами 248 11. Помилка не виникне, тому що розмір обох однаковий. Замість ручного додавання можна використати функцію, яка входить в клас ndarray sum().
  • np.array(array1 + array1) == array1 + array2
  • Клас ndarray надає велику бібліотеку методів для математичних операцій. Вони задаються у вигляді np.ім'я методу (ім'я змінної).

    Форма

    Розмір масиву в "Пітоні" визначає форму. Для перевірки поточної форми використовується метод shape().
    Масив "Пітоні" (Python)
    Масив з двома і трьома елементами має форму (223). Вона зміниться, якщо в shape() вказати аргументи. В якості першого буде використано кількість подмассивов, другого - розмірність кожного подмассива. Ту ж саму операцію виконує функція reshape(). Її параметри визначають число рядків і стовпців. Існують методи для маніпуляцій формою. Наприклад, ravel() з багатовимірного масиву робить одновимірний, вибудовуючи внутрішні значення за зростанням послідовно. Функція transpose() міняє місцями рядки і стовпці багатовимірного масиву.

    Зрізи

    Часто доводиться працювати не з цілим масивом, а лише з деякими його елементами. Для цих цілей у "Пайтоне" існує метод "Зріз" (слайс). Він прийшов на заміну перебору елементів цикл for.
    Масив "Пітоні" (Python)
    Метод відкриває широкі можливості для отримання копії масиву в "Пітоні". Всі маніпуляції здійснюються в такому вигляді[start:stop:step]. Тут значення start позначає індекс елемента, від якого починається відлік, значення stop - останній елемент, розмір кроку - кількість пропускаються елементів при кожній ітерації. За замовчуванням start дорівнює нулю, тобто відлік починається від нульового елемента списку, stop дорівнює індексу останнього елемента списку, крок - дорівнює одиниці, тобто перебирає кожен по черзі. Якщо передати у функцію без аргументів, список скопійовано повністю від початку до кінця. Наприклад, у нас є масив:
  • mas =[1, 2, 3, 4]
  • Щоб скопіювати, використовуємо mas[:]. Функція поверне послідовність елементів[1, 2, 3, 4]. Якщо аргументом буде від'ємне значення, наприклад -3 функція поверне елементи з індексами від третього до останнього.
  • mas[-3]; //[4]
  • Після подвійного двокрапки вказується крок елементів, що копіюються в масиві. Наприклад, mas[::2]поверне масив[1, 3]. Якщо зазначене від'ємне значення, наприклад,[::-2]відлік починається з кінця, і отримаємо[3, 1]. Методом зрізу можна гнучко працювати з вкладеними списками. Для двовимірного масиву у "Пітоні"[:, 2]означає, що повернеться кожен третій елемент всіх масивів. Якщо вказати[:2]- повернуться перші два.

    Копія

    Отримання копії здійснюється за допомогою слайсів, про які написано вище. В Python копіювання через присвоювання не працює, тому що таким чином передаються не самі об'єкти, а тільки посилання. Це означає, що створивши масив зі значеннями np.arange(10) і присвоївши array2 = array1 отримаємо два об'єкти з однаковими значеннями, але різними іменами, в цьому випадку array1 і array2. Зміна форми одного з них вплине на другий. Функція array1.shape(3 4) змінить форму array2.

  • array1.shape() == (3 4);//true
  • array2.shape() == (3 4);//true
  • Функція view() створює різні об'єкти з однаковими даними. Наприклад, у нас є певний масив array, до якого ми застосовуємо функцію view()
  • array.view()
  • Отримане значення присвоюємо другого масиву array2 і бачимо, що це різні об'єкти, але у них однакові дані. Перевіряємо:
  • array2 is array1; //false
  • Якщо змінюємо форму одного з масивів, що воно не змінюється і в другому.
  • array1.shape(2 6)
  • array1 == array2; //true
  • Об'єднання, розбиття

    Масиви між собою можуть об'єднуватися. Це здійснюється уздовж осей або рядків. Функція hstack() об'єднує їх по рядках, а vstack() - по стовпцях. За допомогою функції column_stack() можна об'єднати масиви в аргументах в один одновимірний. Аналогічно column_stack() працює row_stack(), але об'єднує рядки, а не стовпці. Щоб розбити масив по горизонталі, застосовується функція hsplit(), а vsplit() - по вертикалі.