Введение в многомерные массивы в 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, Создание многомерного списка или массива и т. Д. Вы также можете просмотреть другие предлагаемые нами статьи, чтобы узнать больше:
- C # Jagged Arrays
- 3D-массивы в Java
- Что такое TensorFlow?
- Что такое NumPy?
- Для цикла в PHP
- 3D-массивы в C ++
- Массивы в PHP
- Как работают массивы и списки в Python?
- Как работает массив в Unix с синтаксисом?