国产探花免费观看_亚洲丰满少妇自慰呻吟_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的實例講解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 津南区| 子长县| 北宁市| 安徽省| 龙川县| 江源县| 和政县| 福州市| 香河县| 三门峡市| 昔阳县| 淮北市| 芮城县| 黑山县| 昌黎县| 乌鲁木齐县| 启东市| 宝清县| 鸡西市| 虎林市| 福建省| 浦北县| 黄骅市| 平邑县| 吴忠市| 满洲里市| 那坡县| 兴宁市| 昌黎县| 楚雄市| 镇坪县| 安顺市| 赫章县| 陈巴尔虎旗| 安塞县| 阿荣旗| 宁津县| 临桂县| 镇宁| 武宁县| 缙云县|