大家好,很久没有更新NumPy系列了,今天我们接着聊点NumPy中的一些操作,本期内容主要面向刚接触NumPy或者正在学习NumPy的读者,主要将涉及:

  • 初始化不同类型数据

  • 基本数学运算


初始化不同类型数据


这一部分已经在之前的热身20题中有所涉及,首先是初始化全为0的数组,我们只需要使用np.zeros(),并传给它指定形状即可

NumPy进阶修炼|基础操作与运算_java

初始化数组时也可以指定数据类型,比如使用np.ones()创建全是1的三维数组

NumPy进阶修炼|基础操作与运算_java_02

当然也可以使用np.full()来指定任意的数字

或者使用np.full_like()来创建具有相同形状和类型的数组

生成指定形状的随机数可以使用np.random.rand()

指定数据范围可以使用np.random.randint()

有关生成随机数的具体参数设置可以在官方文档中轻松找到,我也在习题中有所提及,此处就不再赘述。现在我们来创建一个3*3的单位阵

如上图所示,在NumPy中可以使用np.identity()np.eye()来创建单位阵,但是两者的区别是np.identity()只能创建方阵,而np.eye()可以使用可以调节1在对角线的位置偏离度。在初始化数组中repeat也是一个很重要的方法如上图所示,我们可以使用np.repeat()将numpy数组重复,并可以可以使用axis来指定轴。OK,我常用的初始化数组的方式大概就上面这么多,最后留一个问题,如果我想使用NumPy生成下面这样一个矩阵该如何操作

代码可以这样写


基本数学运算


现在,我们来聊一聊如何在NumPy中进行数学计算,比如加减乘除,当然是最基本也是最简单的

NumPy进阶修炼|基础操作与运算_java_03

当然两个数组之间运算也是可以的

NumPy进阶修炼|基础操作与运算_java_04

除了加减乘除,平方、开方、三角等计算都不困难

NumPy进阶修炼|基础操作与运算_java_05

而更多的数学计算函数与使用方法可以在官方文档中轻松找到我们就不再一一列举

https://numpy.org/doc/stable/reference/routines.math.html#handling-complex-numbers

NumPy进阶修炼|基础操作与运算_java_06

NumPy进阶修炼|基础操作与运算_java_07