python库使用-Numpy

python库的使用-Numpy

一. numpy的生成矩阵的使用

numpy.array(object)

这个方法可以把一个数组转化成一个ndarray类型(可以当做一个矩阵)的数据。 如:

vector = numpy.array([[1,2,3],[4,5,6]])  
numpy.arange([start,] stop[, step,], dtype=None)

生成一个指定范围的矩阵,start和stop分别是开始和结束,而step是步长,比如:

numpy.arange(10,15,1)  

代表生成一个从10到15 步长为1的一维矩阵。

numpy.zeros(shape, dtype=float, order=’C’)

表示生成一个零阵,其中主要是shape代表这个矩阵的形状,传一个元组,比如(3,4)代表一个3行4列的零阵。如:

numpy.zeros((3,4),dtype=np.int32)  

代表生成一个3行4列,类型为int的零矩阵。

numpy.random.random(shape)

表示生成一个矩阵,每个数据的范围是(-1,1),而shape代表着这个矩阵的形状,如:

numpy.random.random((2,3))  

表示生成一个2行3列的随机矩阵。

numpy.linspace(…)

这个代表把一个区间的数据均分成n分,然后生成一个矩阵,如:

numpy.linspace(1,10,7)  

就代表把1-10均分成7份然后变成矩阵。

二. ndarray的使用

对于上面的numpy生成的矩阵在python中用数据类型就是一个ndarray的类型,所以这里对ndarray的方法的使用,就是对上面生成矩阵的方法的使用。

a = numpy.random.random(shape) 
a.astype(..)

一个ndarray类型的变量调用astype可以改变整个矩阵的数据类型。如:

a.astype(float)  

就把整个矩阵都变成了float类型的了。

a.min() a.sum(axis=)

其中min明显就是求最小值,sum就是求和的意思,而axis代表是按行求和或者按列求和,axis = 1代表按照行,axis=0 代表按照列。

a.T a.ravel()

a.T的输出就是a的一个转置矩阵,而a.ravel()就是把一个多维矩阵拉伸成一维的矩阵。

矩阵的运算

假如有两个ndarray类型的矩阵a,b。那么a-b就是a和b对应位置元素相减(前提二者维度相同)。a*b就是a和b对应元素相乘,a.dot(b)代表把a和b进行矩阵的乘法。

除了上面的四则运算还有逻辑运算,如a==1就会返回一个True,False矩阵,这个矩阵中如果a的摸个位置为1,则这个TF阵中为True,如a为 [1,2,1,3,4] 则a==1 为[True,False,True,False,False]。

并且如果把这个TF阵放在a[.]的[]那么就会把所有为T的位置的元素返回出来,比如a[a==1]就会打印出所有a中为1位置的元素。

三. numpy对矩阵的操作

合并矩阵 numpy.hstack((a,b))

这个代表把a,b矩阵水平拼接起来,注意参数要是一个元组。而 numpy.vstack((a,b))代表把a,b矩阵垂直拼接。

拆分矩阵 numpy.hsplit(a,2)

这个代表把a矩阵拆成两份,如果第二个参数你可以传入一个元组,这样就可以在任意你指定的位置切,比如:

np.hsplit(a,(1,3))  

就代表在1和3的位置各切一次。同样还有一个numpy.vsplit(a,2)与hsplit只是方向不同,一个水平一个是垂直。

扩展矩阵 矩阵排序

numpy.tile(a,(2,3))代表把a矩阵行扩大2倍,列扩展成三倍。

numpy.sort(a,axis=0) 代表对矩阵每一列排序。

四. 矩阵的复制

a=b

直接a=b那么a和b是一样的,并且a改变了b也会改变,二者id相同

a=b.view()

这样的话a和b的值相同,并且指向一个矩阵,a中的值变化了会影响b的值。但是二者id不同。

a = b.copy()

这样的话a只是和b开始时值一样,之后a的值改变不影响b的值,a和b的id不同。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值