📜  Python中的numpy.zeros_like(1)

📅  最后修改于: 2023-12-03 14:46:38.598000             🧑  作者: Mango

Python 中的 numpy.zeros_like

在 NumPy 中,numpy.zeros_like() 是一个返回以另一个数组为形状和类型的数组,并以零填充的函数。这是一个非常方便的函数,因为它允许我们创建一个形状和类型与现有数组相同的新数组,在某些情况下特别有用。

import numpy as np

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

上面的代码将输出一个新的全零数组,其形状和类型与数组 a 相同:

array([[0, 0, 0],
       [0, 0, 0]])

如果 a 是其他数据类型的数组,np.zeros_like() 函数创建的数组将具有同样的数据类型。

import numpy as np

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

上面的代码将输出一个新的全零数组,其形状和类型与数组 a 相同:

array([[0., 0., 0.],
       [0., 0., 0.]])
numpy.zeros_like() 的语法
numpy.zeros_like(a, dtype=None, order='K', subok=True, shape=None)
  • a: 数组,它以另一个数组的形状和数据类型作为模板。
  • dtype: 返回的数组的数据类型。如果未传递,则默认为 None,即返回的数组将使用 a 的数据类型。
  • order: 返回的数组的内存布局。默认为 'K'
  • subok: 如果为 True,则返回的数组将是一个子类化的数组类型。默认为 True
  • shape: 需要返回数组的形状。如果在 numpy 版本 1.17 或更高版本中传递 shape 参数,则会引发警告。在较早的版本中,始终忽略该参数。
numpy.zeros_like() 的使用

下面是一些示例,展示了如何使用 numpy.zeros_like() 创建新数组:

import numpy as np

# 创建一个形状和类型与现有数组相同的全零数组
a = np.array([[1, 2], [3, 4]])
b = np.zeros_like(a)
# 输出 [[0 0]
#      [0 0]]
print(b)

# 创建一个形状和类型与现有数组相同的全零数组,并指定数据类型
a = np.array([[1, 2], [3, 4]], dtype=float)
b = np.zeros_like(a, dtype=int)
# 输出 [[0 0]
#      [0 0]]
print(b)

# 创建一个形状与现有数组不同的全零数组
a = np.array([[1, 2], [3, 4]])
b = np.zeros((3, 3))
# 输出 [[0. 0. 0.]
#      [0. 0. 0.]
#      [0. 0. 0.]]
print(b)

# 创建一个形状与现有数组不同的全零数组,并指定数据类型
a = np.array([[1, 2], [3, 4]], dtype=float)
b = np.zeros((3, 3), dtype=int)
# 输出 [[0 0 0]
#      [0 0 0]
#      [0 0 0]]
print(b)
总结

numpy.zeros_like() 是一个非常方便的函数,可以使用现有数组的形状和类型创建新数组,并将其填充为零。这在某些情况下是非常有用的,特别是当需要与现有数组相同的形状和数据类型的全零数组时。