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

首頁 > 編程 > Python > 正文

對python 矩陣轉置transpose的實例講解

2020-02-22 23:42:02
字體:
來源:轉載
供稿:網友

在讀圖片時,會用到這么的一段代碼:

image_vector_len = np.prod(image_size)#總元素大小,3*55*47img = Image.open(path)    arr_img = np.asarray(img, dtype='float64')    arr_img = arr_img.transpose(2,0,1).reshape((image_vector_len, ))# 47行,55列,每個點有3個元素rgb。再把這些元素一字排開

transpose是什么意識呢? 看如下例子:

arr1 = array([[[ 0, 1, 2, 3],    [ 4, 5, 6, 7]],    [[ 8, 9, 10, 11],    [12, 13, 14, 15]]])

這是原來的矩陣。如果對其進行轉置,執行arr2 = arr1.transpose((1,0,2))

得到:

array([[[ 0, 1, 2, 3],    [ 8, 9, 10, 11]],    [[ 4, 5, 6, 7],    [12, 13, 14, 15]]])

過程是怎樣的?

arr1.shape 應該是(2, 2, 4) 意為 2維,2*4矩陣

arr1.transpose(*args) 里面的參數,可以這么理解,他是調換arr1.shape的順序,咱來給arr1.shape標一下角標哈,(2[0], 2[1], 4[2]) [ ] 里是shape的索引,對吧,

transpose((1, 0, 2)) 的意思是 按照這個順序 重新設置shape 也就是 (2[1], 2[0], 4[2])

雖然看起來 變換前后的shape都是 2,2,4 , 但是問題來了,transpose是轉置

shape按照(1,0,2)的順序重新設置了, array里的所有元素 也要按照這個規則重新組成新矩陣

比如 8 在arr1中的索引是 (1, 0, 0) 那么按照剛才的變換規則,就是 (0, 1, 0) 看看跟你結果arr2的位置一樣了吧,依此類推..

另外一個知識點:

對于一維的shape,轉置是不起作用的,舉例:

x=linspace(0,4,5) #array([0.,1.,2.,3.,4.])y=transpose(x)  # 會轉置失敗。

如果想正確使用的話:

x.shape=(5,1)y=transpose(x)  #就可以了

以上這篇對python 矩陣轉置transpose的實例講解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吴忠市| 吉水县| 沾益县| 湛江市| 金昌市| 七台河市| 竹北市| 咸宁市| 陕西省| 杂多县| 和龙市| 望都县| 临夏市| 北辰区| 涿州市| 田阳县| 汉川市| 肥东县| 木里| 肇东市| 巴楚县| 浦北县| 工布江达县| 繁昌县| 淮安市| 鹤峰县| 周至县| 平和县| 乐业县| 汪清县| 黔西| 阿拉尔市| 厦门市| 健康| 新巴尔虎右旗| 蒙自县| 衡阳县| 兴和县| 赤水市| 和静县| 绿春县|