Python нарезает многомерные массивы

Программирование и разработка

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

Нарезка многомерных массивов Python

Нарезка — это метод удаления раздела массива, который часто используется для подмножества и изменения данных внутри массивов. В Python срез становится значительно более эффективным при использовании с многомерными массивами, поскольку его можно применять по нескольким осям.

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

В одномерном массиве NumPy нарезка выполняется с использованием нотации [start:stop:step].

Python3

import numpy as np
matrix = np.array([[1, 2, 3],
                   [4, 5, 6],
                   [7, 8, 9]])
# Slicing a subarray
# Get a 2x2 subarray
sub_matrix = matrix[0:2, 1:3
print(sub_matrix)

Выход:

[1 2 3]

Нарезка многомерного массива

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

Нарезка строк и столбцов Python

В этом примере мы разрезаем строки и столбцы.

Python3

import numpy as np
matrix = np.array([[1, 2, 3, 4],
                   [5, 6, 7, 8],
                   [9, 10, 11, 12]])
# Slicing with step
 # Skip every other row and column
sliced_matrix = matrix[::2, ::2]
print(sliced_matrix)

Выход

[1, 2, 3]
[2 5 8]

Подмассивы нарезки Python

В этом примере мы вырезаем подмассивы из многомерного массива. Это полезно, когда мы хотим извлечь меньшую часть массива для дальнейшего анализа или манипуляций.

Python3

# Create a sample 2-D array (a list of lists)
matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]
# Slicing using negative indexing to get the last row
last_row = matrix[-1]
print("Last Row:", last_row)
# Slicing using negative indexing to get the last element of the first row
last_element_first_row = matrix[0][-1]
print("Last Element of First Row:", last_element_first_row)
# Slicing using negative indexing to get the last two elements of the second row
last_two_elements_second_row = matrix[1][-2:]
print("Last Two Elements of Second Row:", last_two_elements_second_row)

Выход

[[2 3]
 [5 6]]

Нарезка с помощью Step в Python

В этом примере мы используем параметр шага при срезе многомерного массива, чтобы пропускать элементы вдоль каждой оси.

Python3

import numpy as np
matrix = np.array([[1, 2, 3],
                   [4, 5, 6],
                   [7, 8, 9]])
# Combining slicing along rows and columns
sub_matrix = matrix[1:3, 0:2]
print(sub_matrix)

Выход

[[ 1  3 ]
[ 9 11 ]]

Нарезка с использованием отрицательной индексации в двумерном массиве

В этом примере мы используем отрицательную индексацию для разрезания двумерного массива.

Python3

import numpy as np
# Create a 3-D NumPy array
array_3d = np.array([
    [[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]]
])
# Display the original array
print("Original 3-D Array:")
print(array_3d)
# Slice the last row from each 2-D matrix
sliced_array = array_3d[:, :, -1]
# Display the sliced array
print("\nSliced 3-D Array (Last Row from Each 2-D Matrix):")
print(sliced_array)

Выход

Last Row: [7, 8, 9]
Last Element of First Row: 3
Last Two Elements of Second Row: [5, 6]

Разрез по нескольким осям в Python

В этом примере мы разрезаем данные по нескольким осям, чтобы извлечь определенные элементы из многомерных массивов.

Нарезка с использованием отрицательной индексации в трехмерном массиве

В этом примере мы сначала создаем трехмерный массив NumPy с именем array_3d. Затем мы используем отрицательную индексацию, чтобы вырезать последнюю строку из каждой двумерной матрицы в трехмерном массиве. Обозначение среза [:, :, −1] означает, что мы выбираем все элементы по первому и второму измерениям (строки и столбцы) и последний элемент по третьему измерению (последняя строка в каждой двумерной матрице).

Python3

import numpy as np
# Create a 3-D NumPy array
array_3d = np.array([
    [[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]]
])
# Display the original array
print("Original 3-D Array:")
print(array_3d)
# Slice the last row from each 2-D matrix
sliced_array = array_3d[:, :, -1]
# Display the sliced array
print("\nSliced 3-D Array (Last Row from Each 2-D Matrix):")
print(sliced_array)

Выход

Original 3-D Array:
[[[ 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]]]
Sliced 3-D Array (Last Row from Each 2-D Matrix):
[[ 3  6  9]
 [12 15 18]
 [21 24 27]]

Читайте также:  Топ-5 навыков, которые вы должны знать, прежде чем изучать ReactJS
Оцените статью
bestprogrammer.ru
Добавить комментарий