Numpy 的基础小总结

本文介绍了Python中用于数值计算的numpy库,包括如何使用array、full、empty、eye、linspace和random函数创建数组,以及矩阵的四则运算、矩阵乘法和外积,同时探讨了数组的属性、切片和索引操作。适合初学者了解numpy基础知识。
摘要由CSDN通过智能技术生成

        随着人工智能的不断发展,机器学习这门技术也越来越重要,因此,虽然很想直接上手牛逼哄哄的 cv/nlp,但还什么都不太懂的底层码农,还是需要从基础知识开始学起。本文就是一位萌新码农对 numpy 基础的一个总结。


一、numpy是什么?

        简单来说,numpy (Numeric Python)是python中能够简便数值计算的一个库,能够存储并处理大型矩阵,而且效率也比python原装的嵌套列表结构要高很多。

二、numpy数组

1.创建数组

        (1) array 函数

                代码如下:

凡事由简入繁,这里向array中传入一个list来实现一维数组的创建。

 

直接就是同理可得,二维数组的创建实际与一维数组也没有太大差别,向array中传入一个list的list 

创建一个三维数组,属于是套娃了,传入一个list的list的list…… 

        (2) full 函数

可以自行定义数组形状,并且数组内元素均为同一值。

特殊化的,有创建数组元素全为 1 或 0 的 函数

补充:数组输出中有点的原因是dtype的默认属性为float,如果将其改成int,则数字右下角的点都会没有。

 

 但是出于某种原因(可能是程序员偷懒),数组元素全是 2 的函数(twos)就没有,也可能是0/1可以享受二进制的特殊待遇。

 错误原因就可以看出,numpy里面没有twos这个函数。

        (3) empty 函数

效果上,不能说与ones非常相近,只能说是完全一样 。

        (4) eye 函数

用 eye 函数可以设置矩阵的长与宽,并且生成单位矩阵。

        (5) linspace 函数

 通过 linspace 函数,可以实现恒定步长的数组,由图可得参数为(起点,终点,步长),且当步长没有进行设置时,默认实现的数组元素个数为50.

        (6)生成随机数数组

从这里也可以看出数组元素生成的默认类型是float。 

 有 float 就有 int ,像上图的代码就可以实现固定上下限条件下,随机整数元素的数组的生成。

 

2. numpy 数组的运算

        (1)矩阵四则运算

由图中可以看出 ,数组的四则基本运算为对应的位置的元素进行四则运算。(仔细的童鞋可能发现第四个数组爆inf了,原因从上面创建数组的部分就可以看出来)

 

        (2)矩阵乘法运算(叉乘)【内积运算与之类似,面向对象为一维数组,这里就不再过多说明了

 需要利用 dot 函数。(这里与单位矩阵相乘等于矩阵本身)

        

        (3)矩阵外积运算

需要利用 outer 函数 。(只对一维数组进行的外积运算,若运算对象超过一维,则会先将该数组展开为一维之后再对其进行运算)

3.numpy数组的属性

shape 为数组的排数与列数,dtype则是数组中元素的数据类型

 像在二、1.(2)中说明的一样,int类型也可以转变为float类型。

4.数组的切片

经典的左闭右开,这里所写的是一维数组,如果进行多维数组的切片,则应当注意所切片数组的维数是否与切片方式相符。 

5.数组的索引

        (1)布尔值(boolean)索引

         (2)条件值索引

 


总结

        以上即为本人对 numpy 基础知识的一些整理总结,可能会有所不足之处,有则改之,无则加勉。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值