个人numpy学习笔记

0.库的部署

通过安装anaconda可以便捷地创建拥有不同库的环境,但直接pip向计算机的python环境安装也可行,启用一个库时,需要使用import。

库与py的关系如图模组之于游戏,库为py提供了更多新的代码或是更便捷高校的代码,使用py进行特定的工作时,安装相关库可使写程序事半功倍。

1.1.1 numpy库:array数组

array数组是numpy库提供的核心对象之一,其功能与py本体的list类似,但功能更加强大且更适合储存数据以进行数据分析,如支持更多的查询指令(效率远高于for遍历),只允许储存同一类型的数据,可创建多个维度等等。

第一种创建array的方法:

输出:

在创建array时就可对其进行配置,具体配置方法如下:

除此之外,你也可以在创建数组之后对其属性进行查询,如下图为array本身的属性:

示例:

输出:

便捷地创建数组的方式:

1.arange

类似于py本体中range代码,start=起始数字,stop=结束数字,step=步长。

2.ones

(shape的用法参考前面)

3.ones_s_like

格式中,x代表一个已存在的数组,该代码会创建一个与该数组形状相同,但元素全替换为1的数组。

将上述代码中的ones替换为zeros,即可产生类似但全为0的数组。

4.empty/empty_like

注意,里面的并不一定是0,慎用。

empty_like()同理。

5.full/full_like

例子:

6.random

7.reshape

保留元素内容,重置数组维度。

8.数组整体操作

对数组的任何操作,都会投射到数组的每一个元素上:

而两个数组相加减时,也会项对项的进行加减。

数学上的矩阵相乘计算

前置知识:

数学上,向量(一维数组)与矩阵相乘,运算遵循以下法则:

若向量是行向量且与矩阵的行元素个数相同,则结果也是行向量1,例子:

a=  [1 2 3]

    [4 5 6]

b =  [1 2 3]

a x b =[1x1+2x2+3x3  1x4+2x5+3x6]

    =[14   32]

即:个对个相乘之和

numpy的np.dot(数组a,数组b)支持这种计算。

向量相乘,直接个对个,0+1+4+9+16=30

数学上,对于两个矩阵A与B,AxB代表以A的每一行乘以B的每一列。例子:

结果的意思是:

A的第一行与B的第一列元素一对一相乘的结果   A的第一行与B的第二列一对一相乘的结果

A的第二行与B的第一列元素一对一相乘的结果   A的第二行与B的第二列一对一相乘的结果

显然,矩阵相乘要求前矩阵一行的元素个数等于后矩阵一列的元素个数,同时,矩阵运算有前后要求,故不满足交换率,也不满足消去律。

同样的,np.dot()也支持这种计算:

其它数学函数

np.abs(),括号内数组所有元素变为绝对值。

(补充:np.pi即Π)

(补充:e+a或e-a代表科学计数法,a是一个数字,这一形式指e前面的数要乘10的a或-a次方才是最终结果,图中e+16指近乎无穷大,e-16指近乎无穷小)

np.cos() , np.sin() , np.tan(),字面意思。

log(x)默认是取lnx,需要更改底数要用换底公式,如图。

聚合函数

axis=0:求每一列的最大值,axis=1反之。

布尔型数组

数组内部同样支持储存布尔类型数据,且支持整体判断与单对单的判断。

np.flipud() 反转数组

True与False数量的查询

注:np.random.normal(均值,标准差,元素个数)

布尔型数组作为掩码

即一种使用布尔类型数据作为索引,取出数组内数据的方法。

基于元素自身特征的查询

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值