如何优雅地用Numpy 生成各种各样的数组?

本文详细介绍了如何使用Numpy库生成各种类型的数组,包括全0和全1数组、未初始化的空数组、对角数组以及固定范围和随机分布的数组。通过实例代码演示了zeros、ones、empty、eye、linspace、arange、random模块的使用,强调了array、copy和asarray方法在创建新数组时的区别,以及生成均匀分布和正态分布随机数组的方法。掌握这些技巧能提升数据处理和科学计算的效率。
摘要由CSDN通过智能技术生成

现在我们对 Numpy 有了基本的了解,利用 Numpy 能够帮助我们提高计算效率,利用 Numpy 的 ndarray 多维数组对象存储数据能够减少内存占用,Numpy 的这些优势使得它广泛应用于人工智能、计算机视觉、生物信息等领域。 使用Numpy进行数据处理和科学计算时,生成各种类型的数组是非常常见的需求,有的需要全 0 数组,有的需要满足正态分布的数组。Numpy提供了多种函数和方法,可以方便地生成不同形状和类型的数组。今天我就带大家学习一下如何利用 Numpy 生成各种各样的数组。

生成 0 和 1 的数组

我们知道在图像处理中,我们通常是借助矩阵来表示图片的颜色,全 0 数组表示黑色,全 1 数组表示白色;在数据处理过程中,有时也需要借助全 0 或全 1 数组表示边界条件和权重。 下面我们就来看看如何利用 Numpy 生成一个全 0 或全 1 数组吧!

zeros 方法创建全 0 数组

我们先来学习一下如何生成一个全 0 数组吧! 比如在植物大战僵尸中,游戏开始时,草坪上没有植物,这时我们便可以通过一个全 0 数组代表草坪的初始状态。现在我们需要初始化一个六行八列的草坪,该如何实现呢? 代码示例: import numpy as np

zeroArry=np.zeros((6,8))

print(zeroArry) 输出结果: [[0. 0. 0. 0. 0. 0. 0. 0.] [0. 0. 0. 0. 0. 0. 0. 0.] [0. 0. 0. 0. 0. 0. 0. 0.] [0. 0. 0. 0. 0. 0. 0. 0.] [0. 0. 0. 0. 0. 0. 0. 0.] [0. 0. 0. 0. 0. 0. 0. 0.]] 可以看见在利用 zeros 方法创建一个全 0 数组时,我们只需要传入所需数组的形状便可以创建出所需形状的全 0 数组。 学习完了如何创建全 0 数组,下面我们再来看看如何创建全 1 数组吧!

ones 方法创建全 1 数组

全 1 数组与全 0 数组的作用基本相同,同样也可以用于数据的初始化。比如,扫雷游戏,开始时整个地图我们都没有查看过,这时我们便可是设置一个全 1 数组表示这一初始状态,现在我们要初始化一个四行三列的地图该如何处理呢? 代码示例: import numpy as np

oneArry=np.ones((3,4))

print(oneArry) 输出结果: [[1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.]] 同创建全 0 数组一样,我们只需传入所需数组的形状即可创建所需形状的全 1 数组。我们可以看到,不管是 0 填充还是 1 填充,默认的数据类型都是为浮点数,这值得我们注意。 同时在一些情况下,我们可能需要预先分配足够的空间以容纳即将到来的数据时,这时我们就需要创建一个未初始化的空数组来完成,那么如何才能创建一个指定形状的空数组呢?

empty 方法创建未初始化数组

empty 方法是用来创建一个指定形状、指定数据类型并且未初始化的数组。未初始化指的就是对于其中的数据并没有被指定填充值。 比如,在实验中我们还并未知晓实验数据,但需要提前分配一个三行四列的地址空间,该如何处理呢?代码示例: import numpy as np emptyArry=np.empty((3,4)) print(emptyArry) 输出结果: [[6.23042070e-307 4.67296746e-307 1.69121096e-306 4.67293691e-307] [2.22518251e-306 1.60218491e-306 1.37962320e-306 1.78019354e-306] [2.22522597e-306 1.33511969e-306 1.15711378e-306 1.16826224e-307]] 可以看到其中会出现数据,我们之前不是说没有指定填充值吗,这里为什么又会出现值呢?这其实不难理解,未初始化并不代表没有值,为了程序的安全,未初始化的变量程序会根据编译器的设置填充一些值,比如这里的随机值。 此外,在数学中,特别是在物理中,我们知道一些数据都是存在一些规律的,在进行一些模拟验证时也是需要这样一些具有规律的数据,用键盘一个一个输入这些数据往往是不现实的,NumPy 作为科学计算的利器,也是将这类数据考虑其中,建立相对应的方法。比如:我们想要创建一个对角矩阵该如何处理呢?</

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值