Манипуляции с формами массивов NumPy

NumPyNumPyBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

Достижения

  • Изменение формы массивов
  • Конкатенация и разбиение массивов
  • Транспонирование массивов

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL numpy(("NumPy")) -.-> numpy/ArrayBasicsGroup(["Array Basics"]) numpy(("NumPy")) -.-> numpy/ArrayManipulationGroup(["Array Manipulation"]) numpy/ArrayBasicsGroup -.-> numpy/multi_array("Multi-dimensional Array Creation") numpy/ArrayBasicsGroup -.-> numpy/shape_dim("Shapes and Dimensions") numpy/ArrayManipulationGroup -.-> numpy/reshape("Reshape") numpy/ArrayManipulationGroup -.-> numpy/transpose("Transpose and Axis Swap") numpy/ArrayManipulationGroup -.-> numpy/merge("Merge") numpy/ArrayManipulationGroup -.-> numpy/split("Split") subgraph Lab Skills numpy/multi_array -.-> lab-214{{"Манипуляции с формами массивов NumPy"}} numpy/shape_dim -.-> lab-214{{"Манипуляции с формами массивов NumPy"}} numpy/reshape -.-> lab-214{{"Манипуляции с формами массивов NumPy"}} numpy/transpose -.-> lab-214{{"Манипуляции с формами массивов NumPy"}} numpy/merge -.-> lab-214{{"Манипуляции с формами массивов NumPy"}} numpy/split -.-> lab-214{{"Манипуляции с формами массивов NumPy"}} end

Изменение формы массивов

Функция reshape позволяет изменить форму массива NumPy. Синтаксис функции reshape следующий:

np.reshape(a, new_shape)
  • где a - входной массив, а new_shape - желаемая новая форма массива.

Откройте Python-интерпретатор

Откройте Python-интерпретатор, введя следующую команду в терминале.

python3

Импортируйте NumPy

NumPy уже установлен, вы можете импортировать его в свой код на Python:

import numpy as np

Создайте массив

Создайте массив a формы (2, 3) в качестве примера:

a = np.array([[1, 2, 3], [4, 5, 6]])
print(a.shape)

Результат:

(2, 3)

Использование reshape

Вы можете изменить форму этого массива на форму (3, 2) с использованием функции reshape:

b = np.reshape(a, (3, 2))
print(b.shape)
print(b)

Результат:

(3, 2)
[[1 2]
 [3 4]
 [5 6]]

Конкатенация и разбиение массивов

NumPy предоставляет две функции для конкатенации массивов:

  1. np.concatenate: для конкатенации массивов вдоль заданной оси
  2. np.stack: для конкатенации массивов вдоль новой оси

Вы можете разбивать массивы с использованием функции np.split.

Конкатенация массивов

Создайте два массива a и b в качестве примера:

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

Использование Concatenate

Вы можете конкатенировать эти массивы вдоль первой оси (0) с использованием функции np.concatenate:

c = np.concatenate((a, b))
print(c)

Результат:

[1 2 3 4 5 6]

Использование Stack

Вы также можете конкатенировать эти массивы вдоль новой оси с использованием функции np.stack:

d = np.stack((a, b))
print(d)
print(d.shape)

Результат:

[[1 2 3]
 [4 5 6]]
(2, 3)

Разбиение массивов

Создайте массив a формы (6,) в качестве примера:

a = np.array([1, 2, 3, 4, 5, 6])

Использование Split

Вы можете разбить этот массив на два массива длиной 3 с использованием функции np.split:

b, c = np.split(a, 2)
print(b)
print(c)

Результат:

[1 2 3]
[4 5 6]

Транспонирование массивов

Функция transpose позволяет транспонировать оси массива NumPy. Синтаксис функции transpose следующий:

a.transpose([axis1, axis2,...])
  • где axis1, axis2 и т.д. - оси, которые будут транспонированы.

Создайте массив

создайте массив a формы (2, 3) в качестве примера:

a = np.array([[1, 2, 3], [4, 5, 6]])
print(a)
print(a.shape)

Результат:

[[1 2 3]
 [4 5 6]]
(2, 3)

Использование Транспонирования

Вы можете транспонировать этот массив с использованием функции transpose:

b = a.transpose()
print(b)
print(b.shape)

Результат:

[[1 4]
 [2 5]
 [3 6]]
(3, 2)

Вы также можете транспонировать конкретные оси массива. Например, вы можете транспонировать оси массива a, чтобы получить форму (3, 2), используя следующий код:

c = a.transpose(1, 0)
print(c)
print(c.shape)

Результат:

[[1 4]
 [2 5]
 [3 6]]
(3, 2)

Резюме

Поздравляем! Вы завершили практическое занятие по манипуляциям с формами массивов NumPy.

В этом практическом занятии вы узнали функции NumPy для манипуляции формой reshape, concatenate, stack, split и transpose. Эти функции позволяют вам манипулировать формой массивов NumPy и являются необходимыми для многих задач обработки данных.