Введение в многомерные массивы в Python

Часто в повседневной жизни у нас возникают проблемы, когда нам нужно хранить некоторые данные в формате прямоугольной таблицы. Эти таблицы также можно назвать матрицами или двумерными массивами. В 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)

Создание многомерного списка или массива

Предположим, у нас есть две переменные as, количество строк «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 раз как новый список, и здесь никакого копирования ссылок не происходит.

Как ввести значения в многомерные массивы?

Здесь мы предполагаем двумерный массив с 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 состоит в том, что массивы Numpy являются однородными, то есть могут содержать только целочисленные, строковые, плавающие и т. Д. Значения, а его размер является фиксированным. Многомерный список можно легко преобразовать в массивы Numpy, как показано ниже:

import numpy as nmp
arr = nmp.array( ( (1, 0), (6, 4) ) )
print(arr)

Здесь данный многомерный список приведен к массиву Numpy обр.

Создание массива 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, строкам и столбцам

Доступ к каждому элементу массива 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 Array

Некоторые основные свойства массивов 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 # Jagged Arrays
  2. 3D-массивы в Java
  3. Что такое TensorFlow?
  4. Что такое NumPy?
  5. Для цикла в PHP
  6. 3D-массивы в C ++
  7. Массивы в PHP
  8. Как работают массивы и списки в Python?
  9. Как работает массив в Unix с синтаксисом?