Вступ до багатовимірних масивів в Python
Часто в повсякденному житті у нас виникають проблеми, коли нам потрібно зберігати деякі дані у прямокутному форматі таблиці. Ці таблиці також можна назвати матричним або 2D-масивом. У Python багатовимірні масиви можна досягти, якщо в списку є вкладений список або вкладені списки. Список може бути використаний для представлення даних у форматі нижче в python:
Список = (1, 2, 3)
Список може бути записаний із знаками, розділеними комами. У списку можуть бути такі дані, як ціле число, плаваючий, рядок тощо, а також можна змінювати після створення. Індексація в списках є досить прямою вперед, індекс починаючи від 0 і розтягується на всю довжину списку-1.
Якщо у списку є інші списки в якості елементів, він утворює багатовимірний список або масив. Наприклад:
Список = ((1, 2), (2, 5), (5, 1))
Тут кожне значення списку можна отримати, записавши ім’я списку, а потім квадратну дужку, щоб отримати значення зовнішнього списку, як показано нижче:
Друк (Список (1))
# (2, 5)
Якщо ви хочете пройти далі до внутрішнього списку, додайте ще одну квадратну дужку, щоб отримати доступ до її елементів, як показано нижче:
Друк (Список (1) (0))
№2
Аналогічно, якщо у нас є кілька списків всередині списку, наприклад:
Список = ((1, 3, 5), (8, 5, 6), (7, 1, 6)) #можна також розглядати як
| 1, 3, 5 |
| 8, 5, 6 |
| 7, 1, 6 |
До всіх елементів списку можна ознайомитись за нижчими показниками:
(0) (0), (0) (1), (0) (2) (1) (0), (1) (1), (1) (2) (2) (0), (2) (1), (2) (2)Створення багатовимірного списку або масиву
Припустимо, у нас є дві змінні як, числа рядків 'r' та кількість стовпців 'c'. отже, зробити матрицю розміром m * n, можна зробити так:
Array = ( (0) * c ) * r ) # with each element value as 0
Цей тип декларації не створюватиме проміжки m * n у пам’яті, а лише одне ціле число, на яке посилається кожен елемент внутрішнього списку, тоді як внутрішні списки розміщуються як елементи у зовнішньому списку. Отже, якщо ми змінимо будь-який елемент на 5, то в усьому масиві буде 5 значень у кожному місці елемента того ж стовпця, що і нижче:
Масив (0) (0) = 5
| 5, 0, 0 |
| 5, 0, 0 |
| 5, 0, 0 |
Інший спосіб оголосити масив - це використання генератора зі списком 'c' елементів, повторених 'r' разів. Декларацію можна зробити так:
c = 4
r = 3
Array = ( (0) * c for i in range(r) )
Тут кожен елемент повністю не залежить від інших елементів списку. Список (0) * c будується r разів як новий список, і тут не відбувається копіювання посилань.
Як вводити значення в багатовимірні масиви?
Тут ми припускаємо 2D масив з r рядками та c стовпцями, для яких ми візьмемо значення елементів у користувача.
# Користувач вводить кількість рядків у перший рядок
r = int(input())
arr = () for i in range(r):
arr.append((int(j) for j in input().split()))
Ітераційні значення багатовимірного масиву
Для того, щоб перебрати всі елементи багатовимірного масиву, нам потрібно використовувати вкладені для концепції циклу, як показано нижче:
# спочатку створимо масив c стовпців і r рядків
c = 4
r = 3
arr = ((0) * c for i in range(r)) # loop will run for the length of the outer list
for i in range(r):
# loop will run for the length of the inner lists
for j in range(c):
if i < j:
arr(i)(j) = 8
elif i > j:
arr(i)(j) = 4
else:
arr(i)(j) = 7
for r in arr:
print( ' '.join((str(x) for x in r) ) )
Numpy багатовимірні масиви
Давайте побачимо нумеровані мультимедійні масиви в python:
Numpy - це попередньо визначений пакет у python, який використовується для виконання потужних математичних операцій та підтримки об'єкта N-розмірного масиву. Клас масивів Numpy відомий як "ndarray", що є ключовим у цій структурі. Об'єкти цього класу називаються масивом нумерів. Різниця між багатовимірним списком і Numpy масивами полягає в тому, що нумерові масиви є однорідними, тобто вони можуть містити єдине ціле число, рядок, плавець і т.д. Багатовимірний список можна легко перетворити на масиви Numpy, як показано нижче:
import numpy as nmp
arr = nmp.array( ( (1, 0), (6, 4) ) )
print(arr)
Тут даний багатовимірний список передається в масив Numpy array.
Створення Numpy масиву
import numpy as nmp
X = nmp.array( ( ( 1, 6, 7), ( 5, 9, 2) ) )
print(X) #Array of integers
X = nmp.array( ( ( 1, 6.2, 7), ( 5, 9, 2) ) )
print(X) #Array of floats
X = nmp.array( ( ( 1, 6, 7), ( 5, 9, 2) ), dtype = complex )
print(X) #Array of complex numbers
Вихід:
((1 6 7) (5 9 2)) ((1. 6.2. 7.) (5. 9. 2.)) ((1. + 0.j 6. + 0.j 7. + 0.j) (5. + 0.j 9. + 0.j 2. + 0.j))Доступ до елементів, рядків та стовпців матричної матриці
До кожного елемента масиву Numpy можна отримати доступ так само, як і до багатовимірного списку, тобто до назви масиву, а потім двох квадратних дужок, які підкажуть індекс рядків та стовпців для вибору конкретного елемента.
Приклад:
import numpy as nmp
X = nmp.array( ( ( 1, 6, 7),
( 5, 9, 2),
( 3, 8, 4) ) )
print(X(1)(2)) # element at the given index ie 2
print(X(0)) # first row
print(X(1)) # second row
print(X(-1)) # last row
print(X(:, 0)) # first column
print(X(:, 2)) # third column
print(X(:, -1)) # last column
Вихід:
2
(1 6 7) (5 9 2) (3 8 4) (1 5 3) (7 2 4) (7 2 4)Деякі властивості масиву Numpy
Деякі основні властивості масивів Numpy використовуються в нижченаведеній програмі:
import numpy as nmp
zero_array = nmp.zeros( (3, 2) )
print('zero_array = ', zero_array)
one_array = nmp.ones( (3, 2) )
print('one_array = ', one_array)
X = nmp.arange(9).reshape(3, 3)
print('X= ', X)
print('Transpose of X= ', X.transpose())
Вихід:
zero_array = ((0. 0.) (0. 0.) (0. 0.)) one_array = ((1. 1.) (1. 1.) (1. 1.)) X = ((0 1 2) (3 4 5) (6 7 8)) Транспонування X = ((0 3 6) (1 4 7) (2 5 8))
Висновок
Багатовимірні масиви в Python надають можливість зберігати різні типи даних в одному масиві (тобто у випадку багатовимірного списку) з кожним внутрішнім масивом елемента, здатним зберігати незалежні дані з решти масиву з власною довжиною, також відомою як нерівний масив, чого неможливо досягти в Java, C та інших мовах.
Рекомендовані статті
Це посібник з багатовимірних масивів на Python. Тут ми обговорюємо Вступ до багатовимірних масивів на Python, створення багатовимірного списку чи масиву тощо. Ви також можете ознайомитись з іншими запропонованими нами статтями, щоб дізнатися більше -
- C # Зазубрені масиви
- 3D-масиви на Java
- Що таке TensorFlow?
- Що таке NumPy?
- Для циклу в PHP
- 3D-масиви в C ++
- Масиви в PHP
- Як працюють масиви та списки в Python?
- Як працює масив в Unix із синтаксисом?