Вступ до багатовимірних масивів в 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, створення багатовимірного списку чи масиву тощо. Ви також можете ознайомитись з іншими запропонованими нами статтями, щоб дізнатися більше -

  1. C # Зазубрені масиви
  2. 3D-масиви на Java
  3. Що таке TensorFlow?
  4. Що таке NumPy?
  5. Для циклу в PHP
  6. 3D-масиви в C ++
  7. Масиви в PHP
  8. Як працюють масиви та списки в Python?
  9. Як працює масив в Unix із синтаксисом?