Python中numpy板块介绍

Numpy

Python中的矩阵板块用于对于矩阵的一系计算。

1.数组

numpy中用函数array创造数组

import numpy as np
A=np.array([1,3,2])#创造一维数组
B=np.arry([[1,3,2],[1,9,8]])#创造二维数组

除此之外还有:

np.arange(0,4,dtypr=float)#创造浮点型数组,float可以替换为int,变成整数型数组。

np.empty((m,n),int)#创造一个m*n的空矩阵(每次运行结果都不一样)

np.random,randint(0,3,(2,3))#生成[0,3]上的两行3列的随机整数数组

np.linspace(m,n,num=x)#在给定区间内创造间隔相等的数组,从m到n的数组,包含x个元素。

1.2除了创造数组我们有时还要对数组属性进行测量

import numpy as np
a=array([[2,5,9],[32,6,7]])
print(a.shape)#返回一个元祖,对于m行n列的矩阵返回元祖(m,n)
print(a.dtype)#返回一个数据类型
print(a.size)#返回一个整数,为数组中元素得整数

数组元素得索引

array中的元素都必须是同一种数据类型,array数组元素得引用方式为a[m,n]。但因为索引是从0开始的,所以实际看到的要加一才是真正的那一行。

import numpy as np
a=np.array([[2,6,9],[3,6,9],[4,6,7]])
print(a[m,n])#输出第m+1行n+1列的元素
print(a[:,n])#输出第n+1列的元素
print(a[[0,1],0:2])#输出第一行,第二行,第0,1两列的元素

对数组进行某行某列的删除

import numpy as np
a=array([[1,3,4],[2,3,4],[7,8,9]])
b=np.delete(a,n,axis=0)#删除第n+1行,axis=0按行,axis=1按列
d=np.append(a,[2,3,4],axis=0)#增加一行

1.5对数组的变形,分割以及整合

对数组操作时通常使用reshape函数和resize函数进行变形

import numpy as np
a=np.arange(4)
b=a.reshape(2,2)#生成数据组[[0,1],[2,3]]#构造2行2列的数组
c=np.arange(4,8).reshape(2,2)#生成数组[[4,5],[6,7]]

reshape函数和resize函数使用方式相同但是reshape不改变数组本身,而resize直接通过改变数组本身来改变形状的。

import numpy as np
a=np.arange(4)
b=a.reshape(2,2)#生成数据组[[0,1],[2,3]]
c=np.arange(4,8).reshape(2,2)#生成数组[[4,5],[6,7]]
c2=np.r_[a,c]   #垂直方向整合
di=np.c_[a,c]   #水平方向整合

除了上述函数外,vatack和hstack分别是垂直和水平方向的整合。

数组中分割的函数分别为hsplit和vsplit这两个函数

import numpy as np
a=np.arange(4).reshape(2,2)
b=np.hsplit(a,2)#把a平分为两个列数组
d=np.vsplit(a,2)#把a评分为两个行数组

2数组的运算

2.1数组的加法和乘法,数组对应大小要相等

#a,b为两个大小相等的数组
c=a+b
c=a*b#也就是对应元素相加和相乘
e=np.modf(a/b)[0]#对应元素相处的小数部分
e=np.modf(a/b)[1]#对应元素相处整数部分

这里用到了modf这个函数。

注意:numpy中的+,-,*,/,**都是对应逐个元素进行的。

同时在数组对应大小相等的情况下,数组对应元素之间还能进行大小之间的比较。并且还能对其进行一些其他的操作。

import numpy as np
a=np.array([[3,4,9],[15,12,1]])
b=np.array([[2,6,3],[7,8,12]])
print(a[a>b])#取出a大于b的所有元素,输出:[3,9,12,15]
print(a[a>10])#取出a大于10的元素,输出:[12,15]
print(np.where(a>10,-1,a))
print(np.where(a>10,-1,0))

大小的比较和数字大小比较相同,都是>,<,<=

同时numpy也包含求和函数

import numpy as np
a=np.arange(1,4)
b=sum(a)#使用方法求矩阵的和
c=a.sum()#使用Python自带的方法逐列的求和
d=np.sum(a,axis=0)#使用numpy的方法逐列的求和

矩阵运算和线性代数的关系

Python中的线性代数运算主要是用numpy.linalg模块,其常用函数如表所示

函数说明
inv求矩阵的逆矩阵
solve求解线性方程
det求矩阵的行列式
eig求矩阵的特征值
eigvals求矩阵的特征值和特征向量

  • 1
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页
评论

打赏作者

first青年危机

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值