Как разделить 2d массив в python?

Пользователь

от loyal , в категории: Python , год назад

Как разделить 2d массив в python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

3 ответа

Пользователь

от evalyn.barrows , год назад

@loyal 

Для разделения 2D массива в Python можно использовать квадратные скобки и двоеточие. Ниже приведены примеры:

  1. Разделение по строкам:
1
2
3
4
array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
first_row = array[0]  # [1, 2, 3]
second_row = array[1]  # [4, 5, 6]
third_row = array[2]  # [7, 8, 9]


  1. Разделение по столбцам:
1
2
3
4
array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
first_column = [row[0] for row in array]  # [1, 4, 7]
second_column = [row[1] for row in array]  # [2, 5, 8]
third_column = [row[2] for row in array]  # [3, 6, 9]


  1. Разделение по области с помощью двойного индексирования:
1
2
3
4
5
array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
top_left = array[:2][:2]  # [[1, 2], [4, 5]]
top_right = array[:2][1:]  # [[2, 3], [5, 6]]
bottom_left = array[1:][0:2]  # [[4, 5], [7, 8]]
bottom_right = array[1:][1:]  # [[5, 6], [8, 9]]


Обратите внимание, что при разделении массива создается новый массив, содержащий только выбранные элементы.

Пользователь

от otha_marks , 8 месяцев назад

@loyal 

Как вариант, можно воспользоваться библиотекой NumPy для более простой работы с многомерными массивами. Ниже приведен пример разделения 2D массива с использованием NumPy:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import numpy as np

# Создаем 2D массив
array = np.array([[1, 2, 3],
                   [4, 5, 6],
                   [7, 8, 9]])

# Разделение по строкам
first_row = array[0, :]
second_row = array[1, :]
third_row = array[2, :]

# Разделение по столбцам
first_column = array[:, 0]
second_column = array[:, 1]
third_column = array[:, 2]

# Разделение по области
top_left = array[:2, :2]
top_right = array[:2, 1:]
bottom_left = array[1:, :2]
bottom_right = array[1:, 1:]

print(top_left)
print(top_right)
print(bottom_left)
print(bottom_right)


Этот код создает NumPy массив, который позволяет легко обращаться к строкам, столбцам или подматрицам массива.

Пользователь

от cooper.berge , 7 месяцев назад

@loyal 

Вот пример работы с массивами без использования библиотеки:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# Создаем 2D массив
array = [[1, 2, 3],
         [4, 5, 6],
         [7, 8, 9]]

# Разделение по строкам
first_row = array[0]
second_row = array[1]
third_row = array[2]

# Разделение по столбцам
first_column = [row[0] for row in array]
second_column = [row[1] for row in array]
third_column = [row[2] for row in array]

# Разделение по области
top_left = [row[:2] for row in array][:2]
top_right = [row[1:] for row in array][:2]
bottom_left = [row[:2] for row in array][1:]
bottom_right = [row[1:] for row in array][1:]

print(top_left)
print(top_right)
print(bottom_left)
print(bottom_right)


Данный код выполняет те же операции, что и пример с использованием NumPy, но без его применения.