python编程:数值计算库numpy是做机器学习的必备库

此处已添加圈子卡片,请到今日头条客户端查看)

python编程:数值计算库numpy是做机器学习的必备库

 

np.arange(15)的作用就是构造出[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]类似于列表或者说是一个行向量,然后使用reshape方法可以对这个进行重构,reshape(3,5)将这15个元素重构成3行5列,输出为一个三行五列的矩阵。

shape属性可以输出当前矩阵的行数和列数

python编程:数值计算库numpy是做机器学习的必备库

 

ndim属性可以输出当前矩阵的维数

python编程:数值计算库numpy是做机器学习的必备库

 

dtype属性当前矩阵中元素类型

size当前矩阵中元素的个数

创建全是0的矩阵zeros方法:

python编程:数值计算库numpy是做机器学习的必备库

 

创建一个三行四列的数组,zeros方法传递的参数应该是一个元组,(3,4)表示三行四列

创建全是1的矩阵ones方法:

python编程:数值计算库numpy是做机器学习的必备库

 

python编程:数值计算库numpy是做机器学习的必备库

 

创建一个3维的,(2,3,4)表示两个三行四列矩阵,就是三维的

当我们没有指定类型的时候,他默认是float类型,我们可以指定其类型:

python编程:数值计算库numpy是做机器学习的必备库

 

这样矩阵中的元素就全部都是int类型了,后面全部都没有点了

使用数的序列创建矩阵:

python编程:数值计算库numpy是做机器学习的必备库

 

np.arange(0,30,50的意思是从0到30,不包含30,每次增加5形成的序列构造成矩阵

random模块

random方法

python编程:数值计算库numpy是做机器学习的必备库

 

np.random为进入random模块,然后再点上random为调用random函数,该函数会生成从-1到1的随机数,生成2行3列。

linspace方法

python编程:数值计算库numpy是做机器学习的必备库

 

arr=np.linspace(0,pi,50)该方法为从0到3.14...之间平均取50个数

矩阵的运算

如果两个矩阵的shape是一致的,那么两个矩阵的加减就是对应位置的加减:

如果减1那么对应每个元素都减1

arr1**2表示每个元素都平方

arr1<2表示判断每个元素小于2,小于为true,不小于为false

python编程:数值计算库numpy是做机器学习的必备库

 

矩阵的乘法

python编程:数值计算库numpy是做机器学习的必备库

 

矩阵的乘法*表示对应位置的相乘组成一个新的矩阵

arr.dot(arr2)等于np.dot(arr,arr2)就是真实的矩阵相乘,行乘以列

sqrt和exp方法

python编程:数值计算库numpy是做机器学习的必备库

 

exp(x)为e的x次方,exp(arr)为e的矩阵元素次方

sqrt为开根号,sqrt(arr)为矩阵中的元素开根号


python编程:数值计算库numpy是做机器学习的必备库

 

floor为向下取整

ravel方法为将一个矩阵展开变成行向量组的形式

reshape为重构,因为重构的时候行若却确定那么列也确定了,reshape(2,-1)就是指定行数为2,那么列数就不用我们自己算出为6,而是自己写上-1,计算机自己会算出来

print(arr.T)这个方法为输出当前矩阵的转秩,行变列,列变行


矩阵的拼接

python编程:数值计算库numpy是做机器学习的必备库

 

hstack为行拼接,vstack为列拼接


矩阵的切分

python编程:数值计算库numpy是做机器学习的必备库

 

hsplit为行切分,切分成两部分(其实行切分从真实情况看就是一把刀再竖着砍一刀)

还可以再指定位置切分np.hsplit(arr,(1,2))

python编程:数值计算库numpy是做机器学习的必备库

 

这个意思是将arr矩阵从1切一下,从2切一下,这样就切成了三部分,三个矩阵

python编程:数值计算库numpy是做机器学习的必备库

 

vsplit为列切分,实际上看就是从行的角度来切分,切成两部分,那就是平均分


python编程:数值计算库numpy是做机器学习的必备库

 

这个就没有实现copy,arr和arr1指向同一内存,一个改变全部都变

python编程:数值计算库numpy是做机器学习的必备库

 

arr.view实现的是浅copy,所谓浅copy是指两个不指向同一位置的内存,但是共用某些数据,比如说arr和arr1就是浅copy,arr和arr1的id不同,可见二者并没有指向同一块内存,但是当arr[1][2]=66的时候,发现arr和arr1的数据都变化了,这就是说明他们共用某些数据

python编程:数值计算库numpy是做机器学习的必备库

 

copy可以实现arr1和arr完全指向不同的内存,并且没有共享数据


找出一个矩阵中每行或每列的最大值

python编程:数值计算库numpy是做机器学习的必备库

 

一个矩阵可能有多维,如果arr.shape=(1,2,3),那么arr[0]=1,arr[1]=2,arr[2]=3,所以arr[1]就是4

arr.argmax(axis=0)是从列的角度获取最大值,输出为[2 0 3 1]就表示每列的最大值在第3行,1行,4行,2行,我们可以使用这个作为行索引,他们分别对应第一列,第二列,第三列,第四列,列索引是rang(4),这样正好是第1列,第二列,第三列,第四列,所以写成range(arr.shape[1])用这个来表示0到3,行数固定

也就是说arr[ind,range(4)]表示为:

arr[2][0]

arr[0][1]

arr[3][2]

arr[1][3]

行就是2,0,3,1,列是0,1,2,3分别对应


python编程:数值计算库numpy是做机器学习的必备库

 

可以看出arr1是由arr组成了一个4行3列的矩阵


矩阵内数据排序

可以将矩阵内的数据按行排序和按列排序:

python编程:数值计算库numpy是做机器学习的必备库

 

这个程序共有两个排序方式,方式一:按照它封装好的sort方法进行行排序和列排序

方式二:使用argsort方法返回矩阵数据从小到大的索引坐标,该程序结果为[2,0,1,3]然后在使用它作为索引,获取到数据,结果就是从小到大的数据

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值