1、numpy库简介:

   NumPy提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库。专为进行严格的数字处理而产生。

2、numpy库使用:

注:由于深度学习中存在大量的矩阵运算,实践中也主要关注此点。

运行环境:Python3

(1)矩阵(matrix)、列表(list)、数组(array)的转换

list变成array: np.array(A)
list变为matrix:np.mat(A)
array和matrix相互转换: np. mat(A),np. array(A)
matrix和array变换为list: A.tolist()
例:
import numpy as np              #导入NumPy库
if __name__ == "__main__":
a = [[, , ], [, , ]] # 列表
b = np.array(a) # 列表转数组
c = np.mat(a) # 列表转矩阵
d = np.array(c) # 矩阵转数组
e = np.mat(d) # 数组转矩阵
f = e.tolist() # 矩阵转列表

(2) 矩阵创建

import numpy as np       #导入NumPy库
if __name__ == "__main__":
a =[,,] #列表
a =np.array(a) #数组
a1=np.mat(a) #创建一个1*3的矩阵 或 a2=np.mat([, , ])
a2=np.mat([[,],[,]]) #创建一个2*2的矩阵
b1=a2[,:] #提取第 行
b2=a2[:,] #提取第 列
c1=np.mat(np.zeros((,))) #创建一个3*3的零矩阵,矩阵这里zeros函数的参数是一个tuple类型(,)
c2=np.mat(np.ones((,))) #创建一个2*4的1矩阵,默认是浮点型的数据,如果需要时int类型,可以使用dtype=int
c3=np.mat(np.eye(,,dtype=int)) #产生一个2*2的对角矩阵,dtype=int
c4=np.mat(np.diag([,,])) #生成一个对角线为1、、3的对角矩阵

(3)矩阵运算

import numpy as np       #导入NumPy库
if __name__ == "__main__":
#矩阵相乘
a1=np.mat([,]);
a2=np.mat([[],[]]);
a3=a1*a2 #*2的矩阵乘以2*1的矩阵,得到1*1的矩阵
#矩阵点乘——矩阵对应元素相乘
b1=np.mat([,]);
b2=np.mat([,]);
b3=np.multiply(b1,b2)
#矩阵求逆
c1=np.mat(np.eye(,)*0.5)
c2=c1.I
#矩阵转置
d1=np.mat([[,],[,]])
d2=d1.T
#矩阵求和
e1=np.mat([[,],[,]])
e2=e1.sum(axis=) #列和,这里得到的是1*2的矩阵
e3=e1.sum(axis=) #行和,这里得到的是2*1的矩阵

(4)计算矩阵最大、最小值和索引

import numpy as np       #导入NumPy库
if __name__ == "__main__":
a1=np.mat([[,],[,],[,]]) #得到的是3*2的矩阵
a2=a1.max() #计算a1矩阵中所有元素的最大值,这里得到的结果是一个数值
a3=np.max(a1[:,]) #计算第2列的最大值,这里得到的是一个数值
a4=a1[,:].max() #计算第2行的最大值,这里得到的是一个数值
a5=np.max(a1,) #计算每列的最大值,这里得到是一个1*2矩阵
a6=np.max(a1,) #计算每行的最大值,这里得到是一个3*1矩阵
a7=np.argmax(a1,) #计算每列的最大值对应在该列中的索引,这里得到是一个1*2矩阵
a8=np.argmax(a1[,:]) #计算第二行中最大值对应在该行的索引,这里得到的是一个数值

(5)矩阵的合并

import numpy as np           #导入NumPy库
if __name__ == "__main__":
a=np.mat(np.ones((,))) #得到2*2全1矩阵
b= np.mat(np.eye()) #得到2*2对角单位矩阵
c= np.vstack((a,b)) #按列合并,即增加行数,得到4*2矩阵
d= np.hstack((a,b)) #按行合并,即行数不变,扩展列,得到2*4矩阵

(6)读取矩阵行列数

import numpy as np             #导入NumPy库
if __name__ == "__main__":
a=np.shape(np.eye())[] #读出行数,得到1个数
b=np.shape(np.eye())[] #读出列数,得到1个数
m, n = np.shape(np.eye()) #读出行列数,得到2个数

(7)随机数

import numpy as np       #导入NumPy库
import random #导入随机数random库
if __name__ == "__main__":
a = random.randint(,) #用于生成一个指定范围内的整数
a1 = random.uniform(,) #生成一个指定范围内的随机符点数
a2 = random.randrange(, , ) #从指定范围内,按指定基数递增的集合中 获取一个随机数
a3 = random.shuffle(["a", "b", "c"] ) #用于将一个列表中的元素打乱 b = np.random.random(size=(,)) #生成2*4浮点数随机数组,随机数的值位于0到1之间
b1 = np.random.randint(,,size=(,)) #生成3*3整数随机数组,随机数的值位于1到100之间
b2 = np.random.binomial(, 0.5, size=(,)) #生成2*3二项分布随机数组,一次试验抛5次硬币朝上的硬币数,做2*3次试验

(7)其他矩阵处理方法

import numpy as np                       #导入NumPy库
if __name__ == "__main__":
a=np.mat([[,,],[,,],[,,]]) #得到的是3*3的矩阵
a1 = np.mean(a,axis=) #参数axis=0表示对矩阵的每一列求均值,得到1*3矩阵
a2 = np.cov(a,rowvar=) #计算协方差矩阵,得到3*3数组
a3,a4 = np.linalg.eig(a) #计算矩阵的特征值和特征向量,分别得到3*1数组,*3矩阵
a5 = np.argsort(a3) #对特征进行排序(升序),函数返回的是原索引值,得到3*1数组

参考文献

[1] http://www.runoob.com/python3/python3-tutorial.html

[2] https://www.cnblogs.com/chamie/p/4870078.html

 

Python基础——numpy库的使用的更多相关文章

  1. Python数据分析numpy库

    1.简介 Numpy库是进行数据分析的基础库,panda库就是基于Numpy库的,在计算多维数组与大型数组方面使用最广,还提供多个函数操作起来效率也高 2.Numpy库的安装 linux(Ubuntu ...

  2. Python 的 Numpy 库

    Numpy: # NumPy库介绍 # NumPy的安装 #  NumPy系统是Python的一种开源的数值计算扩展 #  可用来存储和处理大型矩阵. #  因为不是Python的内嵌模块,因此 ...

  3. Python之Numpy库常用函数大全(含注释)

    前言:最近学习Python,才发现原来python里的各种库才是大头! 于是乎找了学习资料对Numpy库常用的函数进行总结,并带了注释.在这里分享给大家,对于库的学习,还是用到时候再查,没必要死记硬背 ...

  4. Python之Numpy库常用函数大全(含注释)(转)

    为收藏学习,特转载:https://blog.csdn.net/u011995719/article/details/71080987 前言:最近学习Python,才发现原来python里的各种库才是 ...

  5. Python的numpy库下的几个小函数的用法

    numpy库是Python进行数据分析和矩阵运算的一个非常重要的库,可以说numpy让Python有了matlab的味道 本文主要介绍几个numpy库下的小函数. 1.mat函数 mat函数可以将目标 ...

  6. Python基础——matplotlib库的使用与绘图可视化

    1.matplotlib库简介: Matplotlib 是一个 Python 的 2D绘图库,开发者可以便捷地生成绘图,直方图,功率谱,条形图,散点图等. 2.Matplotlib 库使用: 注:由于 ...

  7. 【python】numpy库和matplotlib库学习笔记

    Numpy库 numpy:科学计算包,支持N维数组运算.处理大型矩阵.成熟的广播函数库.矢量运算.线性代数.傅里叶变换.随机数生成,并可与C++/Fortran语言无缝结合.树莓派Python v3默 ...

  8. python中numpy库的一些使用

    想不用第三方库实现点深度学习的基础部分,发现numpy真的好难(笑),在此做点遇到的函数的笔记 惯例官方文档:https://docs.scipy.org/doc/numpy-1.16.1/refer ...

  9. Python之numpy库

    NumPy库知识结构 更多详细内容参考:http://www.cnblogs.com/zhanglin-0/p/8504635.html

随机推荐

  1. List集合类

    1.1:  List.add方法——向集合列表中添加对象 public static void main(String[] args) { List<String> list=new Ar ...

  2. 简述with原理

    with open('x') as f: for line in f: print(line.replace('a', 'b')) 不管在处理文件过程中是否发生异常,都能保证 with 语句执行完毕后 ...

  3. 搜索sqlserver 存储过程中的关键字

    搜索sqlserver 存储过程中的关键字 select * from sys.all_sql_modules where definition like '%SP_NAME%'

  4. [mysql] Mysql数据分组GROUP BY 和HAVING,与WHERE组合使用

    理解分组,可以这样:对GROUP BY子句后面跟随的列名进行分组,然后对每一个分组而不是整个表进行操作. 举例:在产品表中,检索每一个供应商提供的商品的数量. mysql> SELECT ven ...

  5. linux和window下生成任意大小的文件

    在Windows环境下的实现方法   使用fsutil命令,在windows xp和win 7下应该都自带了这个命令.命令的格式是 fsutil file createnew 新文件名 文件大小.例如 ...

  6. 将bat文件注册成为系统服务

    第一章 注册系统服务准备 1.1      注册系统服务前准备 1.1.1 涉及第三方软件 Bat_To_Exe_Converter.exe (将*.bat文件转化为可执行*.exe文件) insts ...

  7. Function mysql_db_query() is deprecated 错误解决

    方法一:@ 在任何错误语句之前加上@符号,即可屏蔽! 方法二:error_reporting 在PHP文件第一行加上:error_reporting(0); 即可屏蔽! 方法三:display_err ...

  8. 阶段5 3.微服务项目【学成在线】_day16 Spring Security Oauth2_13-SpringSecurityOauth2研究-JWT研究-生成JWT令牌&验证JWT令牌

    生成jwt需要用私钥来签名.在Auth认证服务下创建测试类 创建密钥工厂,构造函数需要的参数 获取私钥 有了私钥就可以生成JWT令牌 使用jwtHelper是spring security里面的类 e ...

  9. 03--STL算法(常用算法)

    一:常用的查找算法 (一)adjacent_find():邻接查找 在iterator对标识元素范围内,查找一对相邻重复元素,找到则返回指向这对元素的第一个元素的迭代器.否则返回past-the-en ...

  10. java以逗号为分割符拼接字符串的技巧

    java以逗号为分割符拼接字符串的技巧   答: 不用那么多if判断,让人思维混乱,直接到最后使用deleteCharAt方法去除最后一个逗号即可. 实现代码如下所示: StringBuffer sb ...