怎么在Python中使用numpy模块实现矩阵连接?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
Numpy模块自带的矩阵连接函数
#!usr/bin/env python
#encoding:utf-8
from __future__ import division
'''
__Author__:沂水寒城
使用numpy模块实现矩阵的连接操作
'''
import numpy as np
def simple_test():
'''
简单的小实验
'''
sim_one,sim_two=[1,5,8,0,3,6],[11,5,8,0,3]
one_list=[[1,2,3],[1,2,1],[3,4,5],[4,5,6]]
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]]
three_list=[[0,4,3,7],[4,6,1,0],[2,5,9,1]]
three_list=np.array(three_list)
four_list=[[2,9,1],[5,8,7],[9,7,8],[3,7,9]]
print '对一维列表连接结果为:'
pring np.concatenate([sim_one,sim_two],axis=0)
print '对两个矩阵按行连接结果为:'
print np.concatenate([one_list,two_list],axis=0)
print '对两个矩阵按列连接结果为:'
print np.concatenate([one_list,three_list.T],axis=1)
print np.concatenate([one_list,four_list],axis=1)
if __name__ == '__main__':
simple_test()
结果如下:
[Decode error - output not utf-8]
[Decode error - output not utf-8]
[ 1 5 8 0 3 6 11 5 8 0 3]
对两个矩阵按行连接结果为:
[[1 2 3]
[1 2 1]
[3 4 5]
[4 5 6]
[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]]
对两个矩阵按列连接结果为:
[[1 2 3 0 4 2]
[1 2 1 4 6 5]
[3 4 5 3 1 9]
[4 5 6 7 0 1]]
[[1 2 3 2 9 1]
[1 2 1 5 8 7]
[3 4 5 9 7 8]
[4 5 6 3 7 9]]
[Finished in 0.5s]
np.concatenate()函数中,第一个参数为待合并的矩阵、列表,第二个参数为0则表示是按照行连接数据,为1则表示是按照列连接数据。
从上面结果可以看到对于一维列表,axis参数可以省略,对于二维列表当axis为0时也可以省略
当axis为1时,需要注意被连接的数据矩阵行数列数需要相同才行,否则会报错:
AttributeError: 'list' object has no attribute 'T'
即,当axis为1时,本质上就是将矩阵以行为基准对应行的数据直接连接即可
当axis为1时,本质上就是将矩阵以列为基准将数据以此向下堆放在一起即可
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。