日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

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

系統 2111 0

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

            
image_vector_len = np.prod(image_size)#總元素大小,3*55*47
img = 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的實例講解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 松原市| 达州市| 永善县| 通州市| 分宜县| 荔浦县| 库尔勒市| 磴口县| 丹巴县| 资阳市| 桑日县| 桃源县| 宝兴县| 霍邱县| 中牟县| 甘泉县| 泰宁县| 子洲县| 吉林省| 东兰县| 北安市| 三河市| 汝城县| 普安县| 隆德县| 赤峰市| 南京市| 汨罗市| 蒲江县| 桃源县| 常宁市| 深圳市| 阳朔县| 三明市| 林州市| 深州市| 永川市| 郯城县| 华安县| 定边县| 佳木斯市|