Python的numpy库中将矩阵转换为列表等函数的方法


Posted in Python onApril 04, 2018

这篇文章主要介绍Python的numpy库中的一些函数,做备份,以便查找。

(1)将矩阵转换为列表的函数:numpy.matrix.tolist()

返回list列表

Examples

>>>

>>> x = np.matrix(np.arange(12).reshape((3,4))); x
matrix([[ 0, 1, 2, 3],
  [ 4, 5, 6, 7],
  [ 8, 9, 10, 11]])
>>> x.tolist()
[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]]

(2)将数组转换为列表的函数:numpy.ndarray.tolist()

Notes:(数组能够被重新构造)

The array may be recreated, a=np.array(a.tolist()).

Examples

>>>

>>> a = np.array([1, 2])
>>> a.tolist()
[1, 2]
>>> a = np.array([[1, 2], [3, 4]])
>>> list(a)
[array([1, 2]), array([3, 4])]
>>> a.tolist()
[[1, 2], [3, 4]]

(3)numpy.mean()计算矩阵或数组的均值:

Examples

>>>

>>> a = np.array([[1, 2], [3, 4]]) #对所有元素求均值
>>> np.mean(a)
2.5
>>> np.mean(a, axis=0) #对每一列求均值
array([ 2., 3.])
>>> np.mean(a, axis=1) #对每一行求均值
array([ 1.5, 3.5])

(4)numpy.std()计算矩阵或数组的标准差:

Examples

>>>

>>> a = np.array([[1, 2], [3, 4]]) #对所有元素求标准差 
>>> np.std(a)
1.1180339887498949
>>> np.std(a, axis=0) #对每一列求标准差
array([ 1., 1.])
>>> np.std(a, axis=1) #对每一行求标准差
array([ 0.5, 0.5])

(5)numpy.newaxis为数组增加一个维度:

Examples:

>>> a=np.array([[1,2,3],[4,5,6],[7,8,9]]) #先输入3行2列的数组a
>>> b=a[:,:2] 
>>> b.shape #当数组的行与列都大于1时,不需增加维度
(3, 2)
>>> c=a[:,2] 
>>> c.shape #可以看到,当数组只有一列时,缺少列的维度
(3,)
>>> c
array([3, 6, 9])
>>> d=a[:,2,np.newaxis] #np.newaxis实现增加列的维度
>>> d
array([[3],
  [6],
  [9]])
>>> d.shape  #d的维度成了3行1列(3,1)
(3, 1)
>>> e=a[:,2,None] #None与np.newaxis实现相同的功能
>>> e
array([[3],
  [6],
  [9]])
>>> e.shape
(3, 1)

(6)numpy.random.shuffle(index): 打乱数据集(数组)的顺序:

Examples:

>>> index = [i for i in range(10)] 
>>> index 
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
>>> np.random.shuffle(index) 
>>> index 
[7, 9, 3, 0, 4, 1, 5, 2, 8, 6]

(7)计算二维数组某一行或某一列的最大值最小值:

>>> import numpy as np 
>>> a = np.arange(15).reshape(5,3) #构造一个5行3列的二维数组 
>>> a 
array([[ 0, 1, 2], 
  [ 3, 4, 5], 
  [ 6, 7, 8], 
  [ 9, 10, 11], 
  [12, 13, 14]]) 
>>> b = a[:,0].min() ##取第0列的最小值,其他列同理 
>>> b 
0 
>>> c = a[0,:].max() ##取第0行的最大值,其他行同理 
>>> c 
2

(8)向数组中添加列:np.hstack()

n = np.array(np.random.randn(4,2)) 
 
n 
Out[153]: 
array([[ 0.17234 , -0.01480043], 
  [-0.33356669, -1.33565616], 
  [-1.11680009, 0.64230761], 
  [-0.51233174, -0.10359941]]) 
 
l = np.array([1,2,3,4]) 
 
l 
Out[155]: array([1, 2, 3, 4]) 
 
l.shape 
Out[156]: (4,)

可以看到,n是二维的,l是一维的,如果直接调用np.hstack()会出错:维度不同。

n = np.hstack((n,l)) 
ValueError: all the input arrays must have same number of dimensions

解决方法是将l变为二维的,可以用(5)中的方法:

n = np.hstack((n,l[:,np.newaxis])) ##注意:在使用np.hstack()时必须用()把变量括起来,因为它只接受一个变量 
 
n 
Out[161]: 
array([[ 0.17234 , -0.01480043, 1.  ], 
  [-0.33356669, -1.33565616, 2.  ], 
  [-1.11680009, 0.64230761, 3.  ], 
  [-0.51233174, -0.10359941, 4.  ]])

下面讲一下如何按列往一个空列表添加值:

n = np.array([[1,2,3,4,5,6],[11,22,33,44,55,66],[111,222,333,444,555,666]]) ##产生一个三行六列容易区分的数组 
 
n 
Out[166]: 
array([[ 1, 2, 3, 4, 5, 6], 
  [ 11, 22, 33, 44, 55, 66], 
  [111, 222, 333, 444, 555, 666]]) 
 
sample = [[]for i in range(3)] ##产生三行一列的空列表 
Out[172]: [[], [], []] 
for i in range(0,6,2): ##每间隔一列便添加到sample中 
 sample = np.hstack((sample,n[:,i,np.newaxis]))  
  
 
sample 
Out[170]: 
array([[ 1., 3., 5.], 
  [ 11., 33., 55.], 
  [ 111., 333., 555.]])

持续更新中……

以上这篇Python的numpy库中将矩阵转换为列表等函数的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python写的一个文本编辑器
Jan 23 Python
Python创建系统目录的方法
Mar 11 Python
python批量生成本地ip地址的方法
Mar 23 Python
Python中join和split用法实例
Apr 14 Python
使用Python的urllib2模块处理url和图片的技巧两则
Feb 18 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
Jun 01 Python
基于Python批量生成指定尺寸缩略图代码实例
Nov 20 Python
pytorch点乘与叉乘示例讲解
Dec 27 Python
Python 生成VOC格式的标签实例
Mar 10 Python
django使用JWT保存用户登录信息
Apr 22 Python
记一次django内存异常排查及解决方法
Aug 07 Python
Django集成MongoDB实现过程解析
Dec 01 Python
python 列表,数组,矩阵两两转换tolist()的实例
Apr 04 #Python
使用Python设计一个代码统计工具
Apr 04 #Python
用 Python 连接 MySQL 的几种方式详解
Apr 04 #Python
Python基于辗转相除法求解最大公约数的方法示例
Apr 04 #Python
对numpy中数组元素的统一赋值实例
Apr 04 #Python
Python 元类实例解析
Apr 04 #Python
对numpy 数组和矩阵的乘法的进一步理解
Apr 04 #Python
You might like
snoopy 强大的PHP采集类使用实例代码
2010/12/09 PHP
phpmailer在服务器上不能正常发送邮件的解决办法
2014/07/08 PHP
php使用递归函数实现数字累加的方法
2015/03/16 PHP
分享PHP源码批量抓取远程网页图片并保存到本地的实现方法
2015/12/01 PHP
yii2整合百度编辑器umeditor及umeditor图片上传问题的解决办法
2016/04/20 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
jquery中使用$(#form).submit()重写提交表单无效原因分析及解决
2013/03/25 Javascript
JavaScript 32位整型无符号操作示例
2013/12/08 Javascript
node.js中的fs.closeSync方法使用说明
2014/12/17 Javascript
浅谈JavaScript Math和Number对象
2015/01/26 Javascript
js兼容火狐获取图片宽和高的方法
2015/05/21 Javascript
JavaScript下的时间格式处理函数Date.prototype.format
2016/01/27 Javascript
基于javascript实现九宫格大转盘效果
2020/05/28 Javascript
详解微信小程序开发之城市选择器 城市切换
2017/01/17 Javascript
JS实现判断图片是否加载完成的方法分析
2018/07/31 Javascript
浅析vue插槽和作用域插槽的理解
2019/04/22 Javascript
javascript获取select值的方法完整实例
2019/06/20 Javascript
原生JavaScript实现刮刮乐
2020/09/29 Javascript
python安装与使用redis的方法
2016/04/19 Python
python+selenium开发环境搭建图文教程
2017/08/11 Python
解决pycharm remote deployment 配置的问题
2019/06/27 Python
python代码编写计算器小程序
2020/03/30 Python
浅谈keras使用中val_acc和acc值不同步的思考
2020/06/18 Python
Notino法国:购买香水和化妆品
2019/04/15 全球购物
省级四好少年事迹材料
2014/01/25 职场文书
大学军训感言200字
2014/02/26 职场文书
材料员岗位职责
2014/03/13 职场文书
合作意向书格式及范文
2014/03/31 职场文书
教师党员公开承诺事项
2014/05/28 职场文书
员工安全责任书范本
2014/07/24 职场文书
公司合作意向书范文
2014/07/30 职场文书
高中军训的心得体会
2014/09/01 职场文书
2014年小学教师工作自我评价
2014/09/22 职场文书
营业员岗位职责
2015/02/11 职场文书
openstack中的rpc远程调用的方法
2021/07/09 Python
对象析构函数__del__在Python中何时使用
2022/03/22 Python