numpy数组的创建和计算

147 阅读4分钟

数组的创建 numpy 非常的快速,方便,也是科学计算的基础库

numpy 是一个在Python中做科学计算的基础库重在数值计算也是大部分PYTHON科学计算库的基础库,多用于在大型,多维数组上执行数值运算

在 numpy 中还有一种方法就是 dtype,它可以查看数组中存放的数据的类型

此时打印处的结果是 int64,这是 numpy 中的独有的类型,电脑是 64 位数时,默认打出的数字时 64,当然还有 32 和 8

我们在创建数组时也可以指定创建的数组内数据的内容,方法就是在创建数组时在口号内加上 dtype=指定的数据类型

也可以指定位数,此时就需要输入字符串

对于指定了数据类型的数据,我们也可以调整它的数据类型改为其他的,此时需要用到 astype

numpy 中的小数,我们要保留多少位小数,需要使用 np.round 后面加保留多少位小数

数组的计算

在 numpy 中数组是有形状的,使用 shape 查看出来的时数组的行和列,如下所示

此时 numpy 数组是一个两行六列的数组,此时使用

打出的结果是

如果该数组只有一行,那么他打出来的元组中只有一个数,且这个数是数组的元素个数

我们还可以通过 reshape 方法改变数组的形状

此时数组的形状就变为三行四列了,但是如果再去打印 t7 的化,它的形状还是两行六列,这是因为 reshape 与 return 一样是有返回值的,所以 reshape 是不改变数组本身形状的,而是得到一个新的数组

此时的结果是

如果我们想将多维数组变为一维数组时,我们又不知道它里面又几个数据,我们可以使用 flatten 方法

数组加上数字

对于 t9 这样的数组,我们再 t9 后面加上 5

所以是把+5 应用到 t9 中的每个数上了,其他的运算法则也是一样,这就是广播法则

但如果时除以 0 时,系统会警告但不报错,一样会有输出结果,如果是 0/0 的话返回的值是 nan,表示 not a number,不是一个数字,其他的除以 0 返回的是 inf 表示的是无穷大

数组加上数组

在数组加上数字中,是数组中每个数都加上这个数字,而在数组加数组中,只能相对应的位置进行相加

如果数组的结构不一样是会报错的,不会产生计算结果,且两个数组中的数字数量要相同,其他运算法则也是一样的

还有另一种情况就是,原数组是多维的,而另一个数组与它其中一维的数字数量相同,也就是每一行的数字的数量就与那个数组的数量相同,那么运算就是每一维都与其位置对应进行运算,如下所示

以上这是列数与原数组相同,那么行数与原数组相同时是什么情况

由上可知,当行数一样时也就是每一列的数字的数量相同,每一列都会与其位置对应进行运算

简单理解为就是,一个数组的形状时(x,y,z),只要 y,z

中有一个数字一样且其他数字相同或者为 1 就能运算,就拿上述所举的例子来说,t7 是一个(4,6)形状的数组,t11 是一个(1,6)形状的数列,所以 t7 就是每一行都加上位置对应的 t10,t12 是一个(2,1)形状的数组,所以 t7就是每一列都加上位置对应的 t12,三维数组也是一样的原理,三维数组中的 x 表示有几个分块,二维就是两个分块