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模塊實現矩陣和列表的連接操作方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
