
np.zeros_like
是 NumPy 库中的一个函数,用于创建一个与给定数组具有相同形状和类型的数组,并将所有元素初始化为 0。
np.zeros_like(a, dtype=None, order='K', subok=True)
a
相同的形状和类型。a
的数据类型。'C'
为行主序(C-style),'F'
为列主序(Fortran-style)。默认为 'K'
,意味着返回数组的内存布局尽量与输入数组一致。True
,返回的数组将保持子类的类型。如果为 False
,则返回的数组是 ndarray
类型。默认值为 True
。返回一个具有与输入数组相同形状和类型的新数组,且数组的所有元素都初始化为 0。
import numpy as np # 创建一个原始数组 arr = np.array([[1, 2, 3], [4, 5, 6]]) # 使用 np.zeros_like 创建一个与 arr 形状相同的零数组 arr_zeros = np.zeros_like(arr) print(arr_zeros) # 输出: # [[0 0 0] # [0 0 0]]
在这个例子中,arr_zeros
是一个与 arr
形状相同的数组,且所有元素都初始化为 0。
你可以指定新数组的数据类型,而不必依赖输入数组的类型。例如,如果你希望返回一个浮点类型的数组:
arr_zeros_float = np.zeros_like(arr, dtype=float) print(arr_zeros_float) # 输出: # [[0. 0. 0.] # [0. 0. 0.]]
这里,返回的数组类型是 float
,即使原数组 arr
的元素是整数类型。
np.zeros_like()
与 np.zeros()
相似,但是 np.zeros_like()
会根据现有数组的形状和类型创建零数组,而 np.zeros()
需要显式指定形状。
# 使用 np.zeros 创建一个 2x3 的零数组 arr_zeros_manual = np.zeros((2, 3)) # 使用 np.zeros_like 根据 arr 创建一个零数组 arr_zeros_like = np.zeros_like(arr) print(np.array_equal(arr_zeros_manual, arr_zeros_like)) # 输出: True
两者都创建了形状为 (2, 3)
的零数组,但 np.zeros_like()
根据现有数组 arr
的形状和类型自动生成零数组。
通过 order
参数,你可以指定返回数组的内存布局。默认情况下,np.zeros_like()
会使用 'K'
,即尽量与输入数组一致,但你也可以指定为 'C'
或 'F'
:
arr_zeros_c = np.zeros_like(arr, order='C') # 使用行主序 arr_zeros_f = np.zeros_like(arr, order='F') # 使用列主序 print(arr_zeros_c.flags['C_CONTIGUOUS']) # 输出: True,表示是 C-style 存储 print(arr_zeros_f.flags['F_CONTIGUOUS']) # 输出: True,表示是 Fortran-style 存储
np.zeros()
用于根据给定形状创建零数组,而 np.zeros_like()
用于创建一个形状和数据类型与现有数组相同的零数组。np.zeros_like()
比 np.zeros()
更加灵活,因为它能够继承现有数组的形状和类型,而不需要你重新指定。
np.zeros_like(a)
:创建一个与 a
形状和数据类型相同的零数组。dtype
可以指定返回数组的数据类型。order
控制返回数组的内存布局(默认为 K
)。这种方法非常适合在进行数组计算时初始化一个与其他数组具有相同形状的零数组。
到此这篇关于python中np.zeros_like函数用法详解的文章就介绍到这了,更多相关python np.zeros_like函数内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!