python 矩阵拼接_Python使用numpy模块实现矩阵和列表的连接操作方法

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时,本质上就是将矩阵以列为基准将数据以此向下堆放在一起即可

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值