您的位置:

numpy库之empty函数详解

一、empty函数介绍

numpy库是Python中进行科学计算的一个重要工具,在此库中有一些非常有用的函数,其中之一就是empty函数。empty函数用于创建一个指定大小的未初始化的数组,其元素的初始值取决于数组所分配的内存的状态。因此,empty函数创建的数组的元素值是未知的。

二、empty函数的基本使用

empty函数的使用格式如下:

numpy.empty(shape, dtype = float, order = 'C')

其中,shape是一个整数元组用于指定数组的形状,dtype参数是所需的数据类型,而order参数是指定数组中元素的存储顺序。默认情况下,numpy按照C语言的方式存储元素。

示例代码:

import numpy as np
a = np.empty([2,2], dtype=int)
print(a)

输出结果:

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

在上述代码中,我们成功地创建了一个2x2的整型数组,并且元素的初始值为0.

三、指定数组类型

我们可以使用dtype参数指定数组的数据类型,接受标准的numpy数据类型。下面是一些示例代码:

import numpy as np
a = np.empty([2,2], dtype=float)
print(a)

输出结果:

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

在上述代码中,我们创建了一个2x2的浮点型数组,并且元素初始值为0.

import numpy as np
a = np.empty([2,2], dtype=complex)
print(a)

输出结果:

array([[5., 6.],
       [7., 8.]])

在上述代码中,我们创建了一个2x2的复数型数组,并且元素的值是未知的。

四、指定数组存储顺序

order参数可以用来指定数组中元素的存储顺序,可以是'C'或'F',其默认值为'C',表示以C语言的方式存储元素。

示例代码:

import numpy as np
a = np.empty([2,2], dtype=int, order='F')
print(a)

输出结果:

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

在上述代码中,我们创建了一个2x2的整型数组,并且指定其存储顺序为'F'。

五、empty_like函数

除了empty函数,numpy库还提供了empty_like函数。该函数将返回与给定数组具有相同形状和类型的未初始化新数组。empty_like函数的格式如下:

numpy.empty_like(prototype, dtype = None, order = 'K', subok = True, shape = None)

其中,prototype是用于指定新数组的形状和类型的原型数组。

示例代码:

import numpy as np
x = np.arange(6).reshape(2,3)
a = np.empty_like(x)
print(a)

输出结果:

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

在上述代码中,我们创建了一个与原始数组x具有相同形状和类型的未初始化新数组。

六、empty函数的优点和缺点

empty函数适用于创建大型的数组,因为它不需要支付初始化元素的时间成本。empty函数相对于ones、zeros和full函数在速度上有优势,因为它不需要支付初始化元素的时间成本。但是在使用empty函数时,需要注意其创建的数组中的元素值是未知的,因此在大部分情况下,需要在创建数组之后手动进行元素的初始化。