在本文中,我们将尝试了解Python中NumPy的empty()函数和empty_like()函数。
Python 包 NumPy 用于操作数组。使用 NumPy 可以对数组执行许多数学运算。它提供了一个庞大的高级数学函数库,可用于这些数组和矩阵,以及强大的数据结构,可确保数组和矩阵的高效计算。
2005 年,Travis Oliphant 开发了 NumPy。您可以免费使用它,因为它是一个开源项目。
NumPy 空是什么?
该函数返回指定形状和类型的新数组,numpy.empty()
而不初始化任何条目。具有指定形状、数据类型和顺序的未初始化(任意)数据的数组是函数的结果。对象数组将以 None 值开始。
另请记住,由于empty
不会将数组值更改为零,因此它可能比zeros
. 但是,它要求用户手动设置数组中的每个值,因此必须小心使用。
句法
numpy.empty(shape, dtype = float , order = 'C' , like = None ) |
参数
- 形状:int 或 int 的元组
- 必需的
- 空数组的形状,例如:
(4, 2)
或 4。
- dtype:数据类型,
- 选修的
- 数组所需的输出数据类型
- 默认设置为 numpy.float64
- 顺序:{‘C’,’F’}
- 选修的
- 在内存中存储多维数据时使用哪种顺序(列优先(Fortran 风格)或行优先(C 风格))
- 默认设置为“C”
- 像:类似数组
- 选修的
- 为了能够创建非 NumPy 数组的数组,提供了引用对象。结果将由类似数组的传入确定,就像它符合数组函数协议一样。在本例中,它确保创建的数组对象与作为参数提供的数组对象兼容。
返回:具有指定顺序、形状和数据类型的任意(未初始化)数据的集合/数组。对象数组将以 None 值开始。
Numpyempty() 的实现
在实现该功能之前,请确保在您的 IDE 中导入 NumPy 包。要导入包,请运行以下代码行
import numpy as np |
1. 传递整数作为Shape参数
np.empty( 4 ) |
默认情况下会考虑所有其他参数。
2. 传递Tuple作为Shape参数
np.empty(( 3 , 3 )) |
默认情况下会考虑所有其他参数。
3. 分配其他参数
np.empty(( 2 , 3 ), dtype = int , order = 'F' ) np.empty(( 3 , 2 ), dtype = np.float16, order = 'C' ) |
NumPy empty_like 是什么?
与empty()类似,该函数也创建一个数组而不初始化值。创建的新数组的形状和数据类型与给定(原型)数组的形状和数据类型相同。
返回的数组没有被该函数初始化;使用zeros_like
或 ones_like
代替它来这样做。与实际设置数组值的例程相比,它可能会快一点。
Numpy empty_like() 的语法
numpy.empty_like(prototype, dtype = None , order = 'K' , subok = True , shape = None ) |
参数
- 原型:类似数组
- 必需的
- 返回数组的属性由原型的形状和数据类型定义。
- dtype:数据类型
- 选修的
- 覆盖结果的数据类型。
- 顺序:{‘C’、’F’、’A’ 或 ‘K’}
- 选修的
- 顺序 – ‘C’ 表示 C 风格,’F’ 表示 Fortran 风格,如果原型是 Fortran 连续的,则 A 表示 ‘F’,否则为 ‘C’。“K”代表与原型的布局非常相似。
- 苏博克:布尔
- 选修的
- 如果为 True,则新形成的数组将利用原型的子类类型;否则,将使用基类数组。通常设置为 True。
- shape:整数或整数序列
- 选修的
- 覆盖结果的形状。如果 order=’K’ 并且维数保持不变,将尝试维持顺序;否则,推断 order=’C’。
实现 Numpy empty_like()
1. 只提供原型
x = ([ 9 , 8 , 7 ], [ 6 , 5 , 4 ], [ 3 , 2 , 1 ]) np.empty_like(x) |
2. 分配其他参数
y = ([ 1.2 , 2.4 , 3.6 ], [ 2.1 , 4.2 , 6.3 ]) np.empty_like(y, dtype = int , order = 'K' ) z = ([ 2.1 , 3.2 , 4.1 ], [ 4.2 , 5.3 , 6.1 ]) np.empty_like(z, order = 'C' , subok = False , shape = ( 3 , 3 )) |
概括
我们知道 NumPy 中的 empty() 函数有助于构建任何空数组,而无需初始化值。可以使用此函数指定数组的形状、顺序及其数据类型。
类似地,empty_like 也会创建一个没有初始化的数组,并且与提供的原型类似。
参考
https://numpy.org/doc/stable/reference/ generated/numpy.empty.html
https://numpy.org/doc/stable/reference/ generated/numpy.empty_like.html