Python使用numpy模塊實(shí)現(xiàn)矩陣和列表的連接操作方法
Numpy模塊被廣泛用于科學(xué)和數(shù)值計(jì)算,自然有它的強(qiáng)大之處,之前對(duì)于特征處理中需要進(jìn)行數(shù)據(jù)列表或者矩陣拼接的時(shí)候都是自己寫的函數(shù)來完成的,今天發(fā)現(xiàn)一個(gè)好玩的函數(shù),不僅好玩,關(guān)鍵性能強(qiáng)大,那就是Numpy模塊自帶的矩陣、列表連接函數(shù),實(shí)踐一下。
#!usr/bin/env python #encoding:utf-8 from __future__ import division ''' __Author__:沂水寒城 使用numpy模塊實(shí)現(xiàn)矩陣的連接操作 ''' import numpy as np def simple_test(): ''' 簡單的小實(shí)驗(yàn) ''' 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 '對(duì)一維列表連接結(jié)果為:' pring np.concatenate([sim_one,sim_two],axis=0) print '對(duì)兩個(gè)矩陣按行連接結(jié)果為:' print np.concatenate([one_list,two_list],axis=0) print '對(duì)兩個(gè)矩陣按列連接結(jié)果為:' print np.concatenate([one_list,three_list.T],axis=1) print np.concatenate([one_list,four_list],axis=1) if __name__ == '__main__': simple_test()
結(jié)果如下:
[Decode error - output not utf-8] [Decode error - output not utf-8] [ 1 5 8 0 3 6 11 5 8 0 3] 對(duì)兩個(gè)矩陣按行連接結(jié)果為: [[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]] 對(duì)兩個(gè)矩陣按列連接結(jié)果為: [[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()函數(shù)中,第一個(gè)參數(shù)為待合并的矩陣、列表,第二個(gè)參數(shù)為0則表示是按照行連接數(shù)據(jù),為1則表示是按照列連接數(shù)據(jù)。
從上面結(jié)果可以看到對(duì)于一維列表,axis參數(shù)可以省略,對(duì)于二維列表當(dāng)axis為0時(shí)也可以省略
當(dāng)axis為1時(shí),需要注意被連接的數(shù)據(jù)矩陣行數(shù)列數(shù)需要相同才行,否則會(huì)報(bào)錯(cuò):
AttributeError: 'list' object has no attribute 'T'
即,當(dāng)axis為1時(shí),本質(zhì)上就是將矩陣以行為基準(zhǔn)對(duì)應(yīng)行的數(shù)據(jù)直接連接即可
當(dāng)axis為1時(shí),本質(zhì)上就是將矩陣以列為基準(zhǔn)將數(shù)據(jù)以此向下堆放在一起即可
以上這篇Python使用numpy模塊實(shí)現(xiàn)矩陣和列表的連接操作方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python調(diào)用短信貓控件實(shí)現(xiàn)發(fā)短信功能實(shí)例
這篇文章主要介紹了python調(diào)用短信貓控件實(shí)現(xiàn)發(fā)短信功能實(shí)例,需要的朋友可以參考下2014-07-07Python的Flask框架標(biāo)配模板引擎Jinja2的使用教程
Jinja2是Python世界的一款高人氣template engine,是許多開源Web框架的選擇,包括Flask這樣的明星級(jí)項(xiàng)目,這里我們就來共同學(xué)習(xí)Python的Flask框架標(biāo)配模板引擎Jinja2的使用教程2016-07-07Python利用glob庫實(shí)現(xiàn)輕松應(yīng)對(duì)文件和目錄管理
Python提供了glob庫,它允許我們根據(jù)特定模式匹配文件和目錄,本文將詳細(xì)介紹glob庫的用法,并通過實(shí)例演示它的各種功能,需要的可以了解一下2023-07-07python實(shí)現(xiàn)的簡單RPG游戲流程實(shí)例
這篇文章主要介紹了python實(shí)現(xiàn)的簡單RPG游戲流程,實(shí)例分析了Python實(shí)現(xiàn)RPG游戲流程的常用判定技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-06-06windows下python模擬鼠標(biāo)點(diǎn)擊和鍵盤輸示例
這篇文章主要介紹了windows下python模擬鼠標(biāo)點(diǎn)擊和鍵盤輸示例,需要的朋友可以參考下2014-02-02如何使用Python生成4位數(shù)的隨機(jī)數(shù)字
本文討論了如何使用randint() 和randrange() 方法來生成一個(gè)四位數(shù)的數(shù)字,此外,我們還討論了另一種擁有隨機(jī)四位數(shù)號(hào)碼的途徑,感興趣的朋友跟隨小編一起看看吧2023-10-10