NumPy 形状操作

NumPyNumPyBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,你将学习 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 Shell

在终端中输入以下命令以打开 Python shell:

python3

导入 NumPy

NumPy 已经安装,你可以在 Python 代码中导入它:

import numpy as np

创建数组

创建一个形状为 (2, 3) 的数组 a 作为示例:

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

输出:

(2, 3)

使用 Reshape

你可以使用 reshape 函数将这个数组重塑为形状 (3, 2):

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 函数拆分数组。

连接数组

创建两个数组 ab 作为示例:

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

使用 Concatenate

你可以使用 np.concatenate 函数沿第一个轴(0)连接这些数组:

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)

拆分数组

创建一个形状为 (6,) 的数组 a 作为示例:

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

使用 Split

你可以使用 np.split 函数将这个数组拆分为两个长度为 3 的数组:

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 等是需要转置的轴。

创建数组

创建一个形状为 (2, 3) 的数组 a 作为示例:

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

输出:

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

使用 Transpose

你可以使用 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 的形状操作函数 reshapeconcatenatestacksplittranspose。这些函数允许你操作 NumPy 数组的形状,是许多数据操作任务中不可或缺的工具。