NumPy快速入门

Numpy提供了大量矩阵处理的函数

Numpy包含两种基本的数据类型:数组和矩阵 

在使用标准的Python时,处理两种数据均需要循环语句。在使用Numpy时可以不用循环 

一、Numpy在数组上的使用

>>> from numpy import array
>>> mm=array((1,1,1))
>>> pp=array((1,2,3))
>>> pp+mm
array([2, 3, 4])
#每个元素都乘以2
>>> pp*2
array([2, 4, 6])
#对每个元素平方
>>> pp**2
array([1, 4, 9], dtype=int32)
#像列表一样访问数组中的元素
>>> pp[1]
2
#Numpy也支持多维数组
>>> jj=array([[1,2,3],[1,1,1]])
#以列表的形式访问
>>> jj[0]
array([1, 2, 3])
>>> jj[0][1]
2
#以矩阵的形式访问
>>> jj[0,1]
2
#两个数组乘起来,两个数组的对应元素相乘
>>> a1=array([1,2,3])
>>> a2=array([0.3,0.2,0.3])
>>> a1*a2
array([0.3, 0.4, 0.9])

二、Numpy在矩阵上的使用

#从NumPy中导入matrix或者mat模块,mat是matrix的缩写
>>> from numpy import mat,matrix
>>> ss=mat([1,2,3])
>>> ss
matrix([[1, 2, 3]])
>>> mm=matrix([1,2,3])
>>> mm
matrix([[1, 2, 3]])
#可以访问数组中的单个元素
>>> mm[0,1]
2
#将python列表转化为Numpy矩阵
>>> pyList=[3,5,9]
>>> mat(pyList)
matrix([[3, 5, 9]])
#强制让mm和ss相乘,会报错,因为矩阵数据类型的运算会强制执行数学中的矩阵运算,所以1*3不能和1*3相乘
>>> mm*ss
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "D:\Program Files\Anaconda3\lib\site-packages\numpy\matrixlib\defmatrix.py", line 309, in __mul__
    return N.dot(self, asmatrix(other))
ValueError: shapes (1,3) and (1,3) not aligned: 3 (dim 1) != 1 (dim 0)
#.T完成对ss的转置
>>> mm*ss.T
matrix([[14]])
#通过numpy中的shape方法查看数组或矩阵的维度
>>> from numpy import shape
>>> shape(mm)
(1, 3)
#让mm和ss矩阵中的元素对应相乘
>>> from numpy import multiply
>>> multiply(mm,ss)
matrix([[1, 4, 9]])

三、矩阵和数组的共同用法

#这种是原地排序
>>> mm.sort()
>>> mm
matrix([[1, 2, 3]])
#argsort得到排序序号
>>> dd=mat([9,8,7])
>>> dd.argsort()
matrix([[2, 1, 0]], dtype=int64)
#得到均值
>>> dd.mean()
8.0
>>> jj=mat([[1,2,3],[8,8,8]])
>>> shape(jj)
(2, 3)
#获取第一行的元素
>>> jj[1:]
matrix([[8, 8, 8]])
#获取第一行第0列和第1列的元素
>>> jj[1,0:2]
matrix([[8, 8]])
扫描二维码关注公众号,回复: 4918119 查看本文章

猜你喜欢

转载自blog.csdn.net/qq_39394809/article/details/85835183