如何使用NumPy的zeros_like函数

1,163 阅读2分钟

顾名思义,NumPy zeros_like()函数生成了一个形状和数据类型相同的数组,但其中填充了零。

通过本指南,我们将讨论这个函数,它的语法,以及如何通过实际例子来使用它。

函数的语法

该函数提供了一个相对简单的语法,如下所示。

numpy.zeros_like(a, dtype=None, order='K', subok=True, shape=None)

函数参数

该函数接受以下参数。

  1. a - 指的是输入的数组或array_like对象。
  2. dtype - 定义输出数组的理想数据类型。
  3. order - 指定内存布局,可接受的值为。
    1. 'C'表示C-order
    2. 'F'表示F-顺序
    3. 'A'表示如果a是Fortran连续的,则为'F',否则为'C'。
    4. 'K'表示尽可能地与a的布局相匹配。
  4. subok - 如果为True,新的数组使用输入数组或array_like对象的子类类型。如果该值被设置为false,则使用基类数组。默认情况下,该值被设置为True。
  5. 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}")

让我们来分解一下上面的代码。

  1. 我们首先导入numpy并给它一个np的别名。
  2. 接下来,我们创建一个基础数组,其形状和数据类型我们希望在zeros_like()函数中使用。在我们的例子中,我们使用arrange函数生成一个数组,并赋予它(2,3)的形状。
  3. 然后,我们使用zero_like函数将基数组转换为一个零点样数组。
  4. 最后,我们打印这些数组。

上面的代码应该返回如图所示的数组。

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函数。考虑改变所提供的例子中的各种参数,以更好地理解该函数的行为方式。