Новини високих технологій
» » Масив "Пітоні" (Python)

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

23-04-2018, 21:19
4 860
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.
Вона підтримує багатомірний масив і матриці, володіє великим набором пакетів для вирішення математичних завдань. А також забезпечує роботу з однорідними багатовимірними масивами і матрицями. Щоб отримати можливість користуватися функціями цього пакета, його необхідно імпортувати.


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

Будь-які дії над елементами масиву в "Пітоні" передбачають створення нового масиву.
Створений масив містить елементи, отримані в результаті виконання деяких дій над ними. Масиви можуть взаємодіяти тільки в тому випадку, коли мають однаковий розмір. Наприклад: 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().
Масив з двома і трьома елементами має форму (223). Вона зміниться, якщо в shape() вказати аргументи. В якості першого буде використано кількість подмассивов, другого - розмірність кожного подмассива. Ту ж саму операцію виконує функція reshape(). Її параметри визначають число рядків і стовпців. Існують методи для маніпуляцій формою. Наприклад, ravel() з багатовимірного масиву робить одновимірний, вибудовуючи внутрішні значення за зростанням послідовно. Функція transpose() міняє місцями рядки і стовпці багатовимірного масиву.

Зрізи

Часто доводиться працювати не з цілим масивом, а лише з деякими його елементами. Для цих цілей у "Пайтоне" існує метод "Зріз" (слайс). Він прийшов на заміну перебору елементів цикл for.
Метод відкриває широкі можливості для отримання копії масиву в "Пітоні". Всі маніпуляції здійснюються в такому вигляді[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() - по вертикалі.
Цікаво по темі
PHP-масив: видалити елемент перший, останній, по значенню
PHP-масив: видалити елемент перший, останній, по значенню
Масиви PHP використовуються повсюдно. Додавання і зміна значень, як правило, не викликає труднощів. Видалення елементів масиву - особлива операція.
PHP array_search: пошук значення в масиві
PHP array_search: пошук значення в масиві
Пошук значення в масиві за допомогою функції PHP array_search. Синтаксис, вхідні параметри і значення, що повертається. Механізм пошуку, залежність
Об'єкти та масиви PHP: array push & pop
Об'єкти та масиви PHP: array push & pop
Стекова організація даних зручна для створення динамічної функціональності. Масиви на PHP, функції push & pop на перших і останніх елементах
Як визначити кількість елементів у масиві PHP?
Як визначити кількість елементів у масиві PHP?
При використанні масивів має значення кількість містяться в них даних. Особливості синтаксису і логіки мови PHP дозволяють динамічно визначати
Javascript Array для збереження необмеженої кількості змінних
Javascript Array для збереження необмеженої кількості змінних
Логічно масив займає проміжне положення між змінними і об'єктами. Практично не слід надавати особливого значення словам. У програмі є змінні і код.
Java Array. Масиви в Java. Java для початківців
Java Array. Масиви в Java. Java для початківців
Для роботи з великою кількістю значень в Java, як у більшості сучасних високорівневих мов програмування, є такий потужний інструмент, як масиви.