经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » NumPy » 查看文章
Python使用numpy模块实现矩阵和列表的连接操作方法
来源:jb51  时间:2019/6/27 9:11:43  对本文有异议

Numpy模块被广泛用于科学和数值计算,自然有它的强大之处,之前对于特征处理中需要进行数据列表或者矩阵拼接的时候都是自己写的函数来完成的,今天发现一个好玩的函数,不仅好玩,关键性能强大,那就是Numpy模块自带的矩阵、列表连接函数,实践一下。

  1. #!usr/bin/env python
  2. #encoding:utf-8
  3. from __future__ import division
  4. '''
  5. __Author__:沂水寒城
  6. 使用numpy模块实现矩阵的连接操作
  7. '''
  8. import numpy as np
  9. def simple_test():
  10. '''
  11. 简单的小实验
  12. '''
  13. sim_one,sim_two=[1,5,8,0,3,6],[11,5,8,0,3]
  14. one_list=[[1,2,3],[1,2,1],[3,4,5],[4,5,6]]
  15. two_list=[[5,6,7],[6,7,8],[6,7,9],[0,4,7],[4,6,0],[2,9,1],[5,8,7],[9,7,8],[3,7,9]]
  16. three_list=[[0,4,3,7],[4,6,1,0],[2,5,9,1]]
  17. three_list=np.array(three_list)
  18. four_list=[[2,9,1],[5,8,7],[9,7,8],[3,7,9]]
  19. print '对一维列表连接结果为:'
  20. pring np.concatenate([sim_one,sim_two],axis=0)
  21. print '对两个矩阵按行连接结果为:'
  22. print np.concatenate([one_list,two_list],axis=0)
  23. print '对两个矩阵按列连接结果为:'
  24. print np.concatenate([one_list,three_list.T],axis=1)
  25. print np.concatenate([one_list,four_list],axis=1)
  26. if __name__ == '__main__':
  27. simple_test()

结果如下:

  1. [Decode error - output not utf-8]
  2. [Decode error - output not utf-8]
  3. [ 1 5 8 0 3 6 11 5 8 0 3]
  4. 对两个矩阵按行连接结果为:
  5. [[1 2 3]
  6. [1 2 1]
  7. [3 4 5]
  8. [4 5 6]
  9. [5 6 7]
  10. [6 7 8]
  11. [6 7 9]
  12. [0 4 7]
  13. [4 6 0]
  14. [2 9 1]
  15. [5 8 7]
  16. [9 7 8]
  17. [3 7 9]]
  18. 对两个矩阵按列连接结果为:
  19. [[1 2 3 0 4 2]
  20. [1 2 1 4 6 5]
  21. [3 4 5 3 1 9]
  22. [4 5 6 7 0 1]]
  23. [[1 2 3 2 9 1]
  24. [1 2 1 5 8 7]
  25. [3 4 5 9 7 8]
  26. [4 5 6 3 7 9]]
  27. [Finished in 0.5s]

np.concatenate()函数中,第一个参数为待合并的矩阵、列表,第二个参数为0则表示是按照行连接数据,为1则表示是按照列连接数据。

从上面结果可以看到对于一维列表,axis参数可以省略,对于二维列表当axis为0时也可以省略

当axis为1时,需要注意被连接的数据矩阵行数列数需要相同才行,否则会报错:

  1. AttributeError: 'list' object has no attribute 'T'

即,当axis为1时,本质上就是将矩阵以行为基准对应行的数据直接连接即可

当axis为1时,本质上就是将矩阵以列为基准将数据以此向下堆放在一起即可

以上这篇Python使用numpy模块实现矩阵和列表的连接操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持w3xue。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号