[Tips] python numpy 多維矩陣結構和一維結構的等價轉換
阿新 • • 發佈:2020-10-10
假設aa是原始多維矩陣,bb是轉換的一維向量,轉換方式:
bb=aa.reshape(-1)
將bb轉換回aa的方法是:
cc=bb.reshape(aa.shape)
驗證:
>>> aa array([[[ 8, 15], [ 0, 8], [-10, 0], [ -5, 2], [ -2, -4]], [[ 7, 4], [-14, 7], [ 20, -7], [ -7, -11], [-18, 8]], [[ 26, -3], [ 12, 0], [ -8, -19], [ 18, -12], [ 3, -5]]], dtype=int32) >>> aa.shape (3, 5, 2) >>> bb=aa.reshape(-1) >>> bb array([ 8, 15, 0, 8, -10, 0, -5, 2, -2, -4, 7, 4, -14, 7, 20, -7, -7, -11, -18, 8, 26, -3, 12, 0, -8, -19, 18, -12, 3, -5], dtype=int32) >>> bb.shape (30,) >>> cc=bb.reshape(aa.shape) >>> cc array([[[ 8, 15], [ 0, 8], [-10, 0], [ -5, 2], [ -2, -4]], [[ 7, 4], [-14, 7], [ 20, -7], [ -7, -11], [-18, 8]], [[ 26, -3], [ 12, 0], [ -8, -19], [ 18, -12], [ 3, -5]]], dtype=int32) >>> cc.shape (3, 5, 2) >>> aa-cc array([[[0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0]]], dtype=int32)