NumPy 中的填充
Python 不允许直接使用数组。这就是 NumPy
库的用武之地,它使得在 Python 中处理和操作数组成为可能。
数组可以是任何指定的大小和维度。有时,需要补偿任何特定数组的尺寸,这就是填充派上用场的地方。
简单来说,填充是指在谈论数组时向任何行或列添加无意义的值,通常是零。它被广泛用于补偿缺少的数组或矩阵中的大量行或列。
本教程演示了如何在 Python 中填充 NumPy
数组。例如,我们将在本教程中用零填充给定的 NumPy
数组。
在 Python 中使用 NumPy.pad()
函数填充 NumPy
数组
顾名思义,NumPy.pad()
函数用于对 NumPy
数组执行填充操作。
NumPy.pad()
函数的语法如下。
numpy.pad(array, pad_width, mode="constant", **kwargs)
NumPy.pad()
函数的所有参数已在下面定义,以便于读者理解。
-
array
- 参数指定必须填充的数组。 -
pad_width
- 它指定将添加到所有轴边缘的值的数量。元组用于指定多维数组的宽度。 -
mode
- 一个可选参数指定阵列的模式。 -
**kwargs
- 可以在函数内传递可变关键字长度的参数。提及是可选的,你可以在线阅读有关它的更多信息。本文中的示例没有使用此参数。
在这里,我们将举一个多维数组的例子,但同样可以通过稍微调整代码来处理一维数组。
以下代码使用 NumPy.pad()
函数在 Python 中填充 NumPy
数组。
import numpy as np
x = np.array([[1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0]])
y = np.pad(x, [(0, 1), (0, 1)], mode="constant")
print(y)
上面的代码提供了以下输出。
[[1. 1. 1. 1. 0.]
[1. 1. 1. 1. 0.]
[1. 1. 1. 1. 0.]
[0. 0. 0. 0. 0.]]
在这里,我们对多维数组执行填充操作以将其维度扩展到我们指定的大小。
在 Python 中使用 shape()
函数填充 NumPy
数组
这是一种间接方法,也能够实现与 NumPy.pad()
函数相同的结果。shape()
函数是 NumPy
库中包含的另一个函数,可以在将此库导入代码后访问。
shape
函数用于确定给定数组或矩阵的维数。
这个方法有点牵强,因为它根据用户的需要创建一个具有所需维度的新空矩阵,然后将原始矩阵插入到新创建的空矩阵中。它实现了相同的结果,但在获得结果的过程中采用了不同的间接路径。
除了 shape()
函数外,此方法还使用 NumPy.zeros()
方法来创建空矩阵。
对于这种方法,我们需要一个参考矩阵,其尺寸满足用户在填充后的目标尺寸的需求,因为我们首先参考创建空矩阵所需的最终尺寸。
以下代码使用 shape()
函数在 Python 中填充 NumPy
数组。
import numpy as np
x = np.array([[1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0]])
y = np.array(
[
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
[1.0, 1.0, 1.0, 1.0, 1.0],
]
)
z = np.zeros(np.shape(y))
z[: x.shape[0], : x.shape[1]] = x
print(z)
上面的代码提供了以下输出。
[[1. 1. 1. 1. 0.]
[1. 1. 1. 1. 0.]
[1. 1. 1. 1. 0.]
[0. 0. 0. 0. 0.]]
Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.
LinkedIn