顾名思义,NumPy zeros_like()函数生成了一个形状和数据类型相同的数组,但其中填充了零。
通过本指南,我们将讨论这个函数,它的语法,以及如何通过实际例子来使用它。
函数的语法
该函数提供了一个相对简单的语法,如下所示。
numpy.zeros_like(a, dtype=None, order='K', subok=True, shape=None)
函数参数
该函数接受以下参数。
- a - 指的是输入的数组或array_like对象。
- dtype - 定义输出数组的理想数据类型。
- order - 指定内存布局,可接受的值为。
- 'C'表示C-order
- 'F'表示F-顺序
- 'A'表示如果a是Fortran连续的,则为'F',否则为'C'。
- 'K'表示尽可能地与a的布局相匹配。
- subok - 如果为True,新的数组使用输入数组或array_like对象的子类类型。如果该值被设置为false,则使用基类数组。默认情况下,该值被设置为True。
- shape - 覆盖输出数组的形状。
函数的返回值
该函数返回一个充满零的数组。输出数组的形状和数据类型与输入数组相同。
例子
请看下面的示例代码。
# import numpy
import numpy as np
# create an array shape and data type
base_arr = np.arange(6, dtype=int).reshape(2,3)
# convert to zero_like array
zeros_arr = np.zeros_like(base_arr, dtype=int, subok=True)
print(f"Base array: {base_arr}")
print(f"Zeros Array: {zeros_arr}")
让我们来分解一下上面的代码。
- 我们首先导入numpy并给它一个np的别名。
- 接下来,我们创建一个基础数组,其形状和数据类型我们希望在zeros_like()函数中使用。在我们的例子中,我们使用arrange函数生成一个数组,并赋予它(2,3)的形状。
- 然后,我们使用zero_like函数将基数组转换为一个零点样数组。
- 最后,我们打印这些数组。
上面的代码应该返回如图所示的数组。
Base array: [[0 1 2]
[3 4 5]]
Zeros Array: [[0 0 0]
[0 0 0]]
例2
下面的例子使用的是浮点数的数据类型。
base_arr = np.arange(6, dtype=int).reshape(2,3)
# convert to zero_like array
zeros_arr = np.zeros_like(base_arr, dtype=float, subok=True)
print(f"Base array: {base_arr}")
print(f"Zeros Array: {zeros_arr}")
在上面的代码中,我们指定dtype=float。这应该会返回一个带有浮点值的零数组。
输出结果如下图所示。
Base array: [[0 1 2]
[3 4 5]]
Zeros Array: [[0. 0. 0.]
[0. 0. 0.]]
结语
在这篇文章中,我们介绍了如何使用NumPy的zeros_like函数。考虑改变所提供的例子中的各种参数,以更好地理解该函数的行为方式。