Python中np.zeros_like函数用法详解!
Python中np.zeros_like函数用法详解!
前言
np.zeros_like 是 NumPy 库中的一个函数,用于创建一个与给定数组具有相同形状和类型的数组,并将所有元素初始化为 0。
语法:
|
1
|
np.zeros_like(a, dtype=None, order='K', subok=True) |
参数:
- a:输入的数组。新的数组将具有与
a相同的形状和类型。 - dtype(可选):指定返回数组的数据类型。如果没有指定,默认为输入数组
a的数据类型。 - order(可选):指定返回数组的内存布局,
'C'为行主序(C-style),'F'为列主序(Fortran-style)。默认为'K',意味着返回数组的内存布局尽量与输入数组一致。 - subok(可选):如果为
True,返回的数组将保持子类的类型。如果为False,则返回的数组是ndarray类型。默认值为True。
返回值:
返回一个具有与输入数组相同形状和类型的新数组,且数组的所有元素都初始化为 0。
使用示例:
1. 创建与现有数组相同形状的零数组
|
1
2
3
4
5
6
7
8
9
10
11
12
|
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。
2. 指定数据类型 dtype
你可以指定新数组的数据类型,而不必依赖输入数组的类型。例如,如果你希望返回一个浮点类型的数组:
|
1
2
3
4
5
6
|
arr_zeros_float = np.zeros_like(arr, dtype=float)print(arr_zeros_float)# 输出:# [[0. 0. 0.]# [0. 0. 0.]] |
这里,返回的数组类型是 float,即使原数组 arr 的元素是整数类型。
3. 与 np.zeros() 的比较
np.zeros_like() 与 np.zeros() 相似,但是 np.zeros_like() 会根据现有数组的形状和类型创建零数组,而 np.zeros() 需要显式指定形状。
|
1
2
3
4
5
6
7
|
# 使用 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 的形状和类型自动生成零数组。
4. 指定内存布局
通过 order 参数,你可以指定返回数组的内存布局。默认情况下,np.zeros_like() 会使用 'K',即尽量与输入数组一致,但你也可以指定为 'C' 或 'F':
|
1
2
3
4
5
|
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 存储 |
5. 与 np.zeros() 的区别
np.zeros() 用于根据给定形状创建零数组,而 np.zeros_like() 用于创建一个形状和数据类型与现有数组相同的零数组。np.zeros_like() 比 np.zeros() 更加灵活,因为它能够继承现有数组的形状和类型,而不需要你重新指定。
总结:
np.zeros_like(a):创建一个与a形状和数据类型相同的零数组。- 可选参数
dtype可以指定返回数组的数据类型。 order控制返回数组的内存布局(默认为K)。- 它通常用于在现有数组的基础上创建零数组,特别是在需要保证形状和类型一致时。
这种方法非常适合在进行数组计算时初始化一个与其他数组具有相同形状的零数组。
到此这篇关于python中np.zeros_like函数用法详解的文章就介绍到这了。
学习资料见知识星球。
以上就是今天要分享的技巧,你学会了吗?若有什么问题,欢迎在下方留言。
快来试试吧,小琥 my21ke007。获取 1000个免费 Excel模板福利!
更多技巧, www.excelbook.cn
欢迎 加入 零售创新 知识星球,知识星球主要以数据分析、报告分享、数据工具讨论为主;
1、价值上万元的专业的PPT报告模板。
2、专业案例分析和解读笔记。
3、实用的Excel、Word、PPT技巧。
4、VIP讨论群,共享资源。
5、优惠的会员商品。
6、一次付费只需129元,即可下载本站文章涉及的文件和软件。

