Python Programming

Создание двумерных массивов в Python

Spread the love

Двумерные массивы, или матрицы, являются фундаментальными структурами данных в программировании, особенно важными для таких задач, как обработка изображений, линейная алгебра и разработка игр. Хотя в Python нет встроенного типа двумерного массива, как в некоторых других языках (например, C++), он предлагает несколько эффективных и элегантных способов их создания и обработки. В этой статье рассматриваются три популярных подхода: списковые включения, вложенные циклы и мощная библиотека NumPy.

Оглавление

Метод списковых включений

Списковые включения предлагают краткий и питоничный способ создания двумерных массивов, особенно полезный при инициализации значениями, генерируемыми по формулам или шаблонам. Он использует вложенные списковые включения, при этом внешний цикл обрабатывает строки, а внутренний — столбцы.


# 3x4 массив, заполненный нулями
rows = 3
cols = 4
array_2d = [[0 for _ in range(cols)] for _ in range(rows)]
print(array_2d)  # Вывод: [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]

# 3x3 массив со значениями, основанными на индексах строки и столбца
array_2d = [[i + j for j in range(3)] for i in range(3)]
print(array_2d)  # Вывод: [[0, 1, 2], [1, 2, 3], [2, 3, 4]]

# 2x2 массив со случайными числами (требуется импорт random)
import random
array_2d = [[random.randint(1,10) for _ in range(2)] for _ in range(2)]
print(array_2d) # Вывод: (Пример) [[7, 2], [9, 5]]

Метод вложенных циклов

Этот подход использует вложенные циклы for с range, итерируя строки и столбцы для построения массива поэлементно. Он более многословен, чем списковые включения, но может быть проще для понимания новичками.


rows = 3
cols = 4

array_2d = []
for i in range(rows):
    row = []
    for j in range(cols):
        row.append(0)  # Или любое другое начальное значение
    array_2d.append(row)

print(array_2d)  # Вывод: [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]

rows = 3
cols = 3
array_2d = []
for i in range(rows):
    row = []
    for j in range(cols):
        row.append(i*cols + j) #Пример заполнения последовательными числами
    array_2d.append(row)
print(array_2d) # Вывод: [[0, 1, 2], [3, 4, 5], [6, 7, 8]]

Массивы NumPy

NumPy — мощная библиотека для численного вычисления в Python. Её функция numpy.array() обеспечивает эффективное создание и обработку многомерных массивов. Массивы NumPy предлагают значительно более высокую производительность, чем списки Python, для числовых операций.


import numpy as np

# 3x4 массив, заполненный нулями
array_2d = np.zeros((3, 4))
print(array_2d)

# 3x3 массив, заполненный единицами
array_2d = np.ones((3, 3))
print(array_2d)

# 2x2 массив, заполненный определённым значением
array_2d = np.full((2, 2), 7)
print(array_2d)

# 3x3 единичная матрица
array_2d = np.eye(3)
print(array_2d)

# 2x3 массив со случайными числами от 0 до 1
array_2d = np.random.rand(2, 3)
print(array_2d)

# 2x2 массив со случайными целыми числами от 1 до 10
array_2d = np.random.randint(1, 11, size=(2,2))
print(array_2d)

NumPy предлагает различные функции для инициализации массивов с различными значениями и шаблонами, что делает его предпочтительным выбором для численных вычислений с двумерными массивами. Не забудьте импортировать библиотеку: import numpy as np перед использованием этих функций.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *