国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python reshape的用法及多個二維數組合并為三維數組的實例

2020-02-15 21:20:53
字體:
來源:轉載
供稿:網友

reshape(shape) : 不改變數組元素,返回一個shape形狀的數組,原數組不變。是對每行元素進行處理

resize(shape) : 與.reshape()功能一致,但修改原數組

In [1]: a = np.arange(20)#原數組不變In [2]: a.reshape([4,5])Out[2]:array([[ 0, 1, 2, 3, 4],  [ 5, 6, 7, 8, 9],  [10, 11, 12, 13, 14],  [15, 16, 17, 18, 19]]) In [3]: aOut[3]:array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,  17, 18, 19]) #修改原數組In [4]: a.resize([4,5]) In [5]: aOut[5]:array([[ 0, 1, 2, 3, 4],  [ 5, 6, 7, 8, 9],  [10, 11, 12, 13, 14],  [15, 16, 17, 18, 19]])

.swapaxes(ax1,ax2) : 將數組n個維度中兩個維度進行調換,不改變原數組

In [6]: a.swapaxes(1,0)Out[6]:array([[ 0, 5, 10, 15],  [ 1, 6, 11, 16],  [ 2, 7, 12, 17],  [ 3, 8, 13, 18],  [ 4, 9, 14, 19]])

.flatten() : 對數組進行降維,返回折疊后的一維數組,原數組不變

In [7]: a.flatten()Out[7]:array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,  17, 18, 19])

將多個二維數組合并為一個三維數組

方法一:

對于兩個(或者多個)同一維度的矩陣,直接利用np.array()重新構造一個array,這樣可以變相起到擴展維數的作用。例如:

import numpy as np a = np.array([[1,2,3],[4,5,6]])b = np.array([[2,2,3],[4,5,6]])c = np.array([[3,2,3],[4,5,6]])print('矩陣a:/n',a)print('維數:',a.shape) com = np.array([a,b,c])print('合并矩陣:/n',com)print('維數:',com.shape) 輸出結果為: 矩陣a: [[1 2 3] [4 5 6]]維數: (2, 3)合并矩陣: [[[1 2 3] [4 5 6]]  [[2 2 3] [4 5 6]]  [[3 2 3] [4 5 6]]]維數: (3, 2, 3)

方法二:

但是,如果兩個array,使用方法一時會出現如下結果:

import numpy as np aa = np.array([[[1,2,3],[4,5,6]],[[2,2,3],[4,5,6]],[[3,2,3],[4,5,6]]])a = np.array([[4,2,3],[4,5,6]]) com = np.array([aa,a])print('合并矩陣:/n',com)print('維數:',com.shape) 輸出結果: 合并矩陣: [array([[[1, 2, 3],  [4, 5, 6]],   [[2, 2, 3],  [4, 5, 6]],   [[3, 2, 3],  [4, 5, 6]]]) array([[4, 2, 3],  [4, 5, 6]])]維數: (2,)

可以看到:輸出的維數不對,以上方法就不適用了。

那么,我們就需要利用np.append和array.reshape()函數對數組進行拼接之后重組,具體實現如下:

import numpy as np aa = np.array([[[1,2,3],[4,5,6]],[[2,2,3],[4,5,6]],[[3,2,3],[4,5,6]]])a = np.array([[4,2,3],[4,5,6]])data = np.append(aa,a)#先拼接成一個行向量print(data) dim = aa.shape#獲取原矩陣的維數print('原矩陣維數:',dim)data1 = data.reshape(dim[0]+1,dim[1],dim[2])#再通過原矩陣的維數重新組合 print('合并矩陣:/n',data1)print('維數:',data1.shape)

現在來看一下用reshape將二維數據升為三維后的數據分布情況:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 驻马店市| 高密市| 游戏| 绥江县| 江达县| 拜泉县| 西贡区| 九寨沟县| 渝北区| 永顺县| 株洲市| 开平市| SHOW| 琼结县| 左云县| 上栗县| 邹城市| 祁连县| 堆龙德庆县| 酒泉市| 黄骅市| 大渡口区| 甘泉县| 柳江县| 安义县| 聂荣县| 开封市| 陵水| 寿宁县| 石阡县| 云林县| 桐柏县| 含山县| 南雄市| 民权县| 大港区| 韩城市| 尚志市| 新郑市| 梧州市| 彭水|