简介
在本实验中,你将学习 NumPy 的形状操作函数,这些函数允许你操作 NumPy 数组的形状。
学习目标
- 重塑数组
- 连接和拆分数组
- 转置数组
在本实验中,你将学习 NumPy 的形状操作函数,这些函数允许你操作 NumPy 数组的形状。
reshape
函数允许你改变 NumPy 数组的形状。reshape
函数的语法如下:
np.reshape(a, new_shape)
a
是输入数组,new_shape
是数组所需的新形状。在终端中输入以下命令以打开 Python shell:
python3
NumPy 已经安装,你可以在 Python 代码中导入它:
import numpy as np
创建一个形状为 (2, 3) 的数组 a
作为示例:
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a.shape)
输出:
(2, 3)
你可以使用 reshape
函数将这个数组重塑为形状 (3, 2):
b = np.reshape(a, (3, 2))
print(b.shape)
print(b)
输出:
(3, 2)
[[1 2]
[3 4]
[5 6]]
NumPy 提供了两个用于连接数组的函数:
np.concatenate
:用于沿给定轴连接数组np.stack
:用于沿新轴连接数组你可以使用 np.split
函数拆分数组。
创建两个数组 a
和 b
作为示例:
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
你可以使用 np.concatenate
函数沿第一个轴(0)连接这些数组:
c = np.concatenate((a, b))
print(c)
输出:
[1 2 3 4 5 6]
你也可以使用 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])
你可以使用 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
函数转置这个数组:
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 数组的形状,是许多数据操作任务中不可或缺的工具。