最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實現(xiàn)矩陣轉(zhuǎn)置的幾種方法詳解

 更新時間:2023年08月22日 14:19:50   作者:夏普通  
這篇文章主要介紹了Python實現(xiàn)矩陣轉(zhuǎn)置的幾種方法詳解,zip() 函數(shù)用于將可迭代的對象作為參數(shù),將對象中對應(yīng)的元素打包成一個個元組,然后返回由這些元組組成的對象,這樣做的好處是節(jié)約了不少的內(nèi)存,需要的朋友可以參考下

Python實現(xiàn)矩陣轉(zhuǎn)置

轉(zhuǎn)置矩陣意味著我們將其列變?yōu)樾?。讓我們通過一個例子來理解它,如果轉(zhuǎn)置后看起來像什么。

假設(shè)您有原始矩陣,例如-x = [[1,2][3,4][5,6]]

在上面的矩陣“ x”中,我們有兩列,分別為1、3、5和2、4、6。

因此,當(dāng)我們在矩陣“ x”上方轉(zhuǎn)置時,列變?yōu)樾?。因此,上面矩陣的轉(zhuǎn)置版本看起來像-x1 = [[1, 3, 5][2, 4, 6]]

因此,我們有另一個矩陣“ x1”,在不同的位置以不同的值組織不同。

方法一、使用numpy轉(zhuǎn)置

import numpy as np
A = np.mat([[1,2,3],[4,5,6],[7,8,9]])
print(A.T)
print(A.swapaxes(0, 1))

 # 均輸出
# [[1 4 7]
#  [2 5 8]
#  [3 6 9]]

import numpy as np
A = [[1,2,3],[4,5,6],[7,8,9]]
print(np.transpose(A))

# 輸出
# [[1 4 7]
#  [2 5 8]
#  [3 6 9]]

方法二、使用zip()函數(shù)

  • zip() 函數(shù)用于將可迭代的對象作為參數(shù),將對象中對應(yīng)的元素打包成一個個元組,然后返回由這些元組組成的對象,這樣做的好處是節(jié)約了不少的內(nèi)存。
  • 可以使用 list() 轉(zhuǎn)換來輸出列表?!緕ip 方法在 Python 2 和 Python 3 中的不同:在 Python 3.x 中為了減少內(nèi)存,zip() 返回的是一個對象。如需展示列表,需手動 list() 轉(zhuǎn)換?!?/li>
  • 如果各個迭代器的元素個數(shù)不一致,則返回列表長度與最短的對象相同,利用 * 號操作符,可以將元組解壓為列表。

zip(A) 相當(dāng)于打包,打包為元組的列表

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> A = zip(a,b)     # 打包為元組的列表
[(1, 4), (2, 5), (3, 6)]
>>> zip(a,c)              # 元素個數(shù)與最短的列表一致
[(1, 4), (2, 5), (3, 6)]
>>> zip(*A)          # 與 zip 相反,*A 可理解為解壓,返回二維矩陣式
[(1, 2, 3), (4, 5, 6)]
A = [[1,2,3],[4,5,6],[7,8,9]]
print(*A) #[1, 2, 3] [4, 5, 6] [7, 8, 9]
#zip()返回的是一個對象。如需展示列表,需手動 list() 轉(zhuǎn)換。
#print(zip(*A)) #<zip object at 0x000001CD7733A2C8>
print(list(zip(*A)))

# 輸出
# [(1, 4, 7), (2, 5, 8), (3, 6, 9)]

這里python中星號(*)的作用是將變量中可迭代對象的元素拆解出來。

方法三、使用python列表表達式

不占用額外空間,“原地修改”

A = [[1,2,3],[4,5,6],[7,8,9]]
#print(len(A)) #矩陣行數(shù)
#print(len(A[0])) #矩陣列數(shù)
B = [[A[j][i] for j in range(len(A))] for i in range(len(A[0]))]
print(B)

 # 輸出
# [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

B = [[A[j][i] for j in range(len(A))] for i in range(len(A[0]))]

這句寫的清楚一點就是:

A = [[1,2,3],[4,5,6],[7,8,9]]
#print(len(A)) #矩陣行數(shù)
#print(len(A[0])) #矩陣列數(shù)
for i in range(len(A[0])):#len(A[0])矩陣列數(shù)
    for j in range(i,len(A)):#len(A)矩陣行數(shù)
        #轉(zhuǎn)置就是A[i][j]和A[j][i]互換
        A[j][i], A[i][j] = A[i][j], A[j][i]
print(A)

# 輸出
# [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

因為轉(zhuǎn)置矩陣的對稱性, for j in range(i,len(A)) 限制了只遍歷矩陣上三角,必須要限制,如果不限制會導(dǎo)致重復(fù)交換。

方法四、新建列表B,使用雙重循環(huán)添加元素

A = [[1,2,3],[4,5,6],[7,8,9]]
B=[]
for i in range(len(A[0])):#len(A[0])矩陣列數(shù)
    temp = []
    for j in range(len(A)):#len(A)矩陣行數(shù)
        temp.append(A[j][i])
    B.append(temp)
print(B)

# 輸出
# [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

到此這篇關(guān)于Python實現(xiàn)矩陣轉(zhuǎn)置的幾種方法詳解的文章就介紹到這了,更多相關(guān)Python實現(xiàn)矩陣轉(zhuǎn)置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Anaconda環(huán)境克隆、遷移的詳細步驟

    Anaconda環(huán)境克隆、遷移的詳細步驟

    最近需要在多臺計算機上工作,每次重新部署環(huán)境比較麻煩,所以學(xué)習(xí)一下anaconda環(huán)境遷移的方法,下面這篇文章主要給大家介紹了關(guān)于Anaconda環(huán)境克隆、遷移的詳細步驟,需要的朋友可以參考下
    2022-08-08
  • python實現(xiàn)對doc,txt,xls文檔的讀寫操作

    python實現(xiàn)對doc,txt,xls文檔的讀寫操作

    這篇文章主要介紹了python實現(xiàn)對doc,txt,xls文檔的讀寫操作,正如標(biāo)題所見,文章包括三個部分python實現(xiàn)對doc文檔的讀取、python實現(xiàn)對txt文檔的讀取和python實現(xiàn)對xls表格的讀取,需要的朋友可以參考一下
    2022-04-04
  • 詳解Python中for循環(huán)的使用方法

    詳解Python中for循環(huán)的使用方法

    這篇文章主要介紹了Python中for循環(huán)的使用方法,是Python入門中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • python使用minimax算法實現(xiàn)五子棋

    python使用minimax算法實現(xiàn)五子棋

    這篇文章主要為大家詳細介紹了python使用minimax算法實現(xiàn)五子棋,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • python 遍歷字符串(含漢字)實例詳解

    python 遍歷字符串(含漢字)實例詳解

    這篇文章主要介紹了python 遍歷字符串(含漢字)實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • 女神相冊密碼忘記了 我只用Python寫了20行代碼

    女神相冊密碼忘記了 我只用Python寫了20行代碼

    這篇文章主要介紹了怎么樣用Python寫了20行代碼來破解找回已經(jīng)忘記的密碼,密碼的排列組合是有限的,遍歷嘗試就能夠試出正確的密碼,但這個工作要怎么用python實現(xiàn),請看下文
    2021-08-08
  • Python如何繪制日歷圖和熱力圖

    Python如何繪制日歷圖和熱力圖

    這篇文章主要介紹了Python如何繪制日歷圖和熱力圖,幫助大家更好的理解和學(xué)習(xí)Python,感興趣的朋友可以了解下
    2020-08-08
  • python中nuitka使用程序打包的實現(xiàn)

    python中nuitka使用程序打包的實現(xiàn)

    本文主要介紹了python中nuitka使用程序打包的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • 如何使用Python調(diào)整圖像大小

    如何使用Python調(diào)整圖像大小

    這篇文章主要介紹了如何使用Python調(diào)整圖像大小,幫助大家更好的利用python處理圖像,感興趣的朋友可以了解下
    2020-09-09
  • Python中的條件判斷語句基礎(chǔ)學(xué)習(xí)教程

    Python中的條件判斷語句基礎(chǔ)學(xué)習(xí)教程

    這篇文章主要介紹了Python中的條件判斷語句基礎(chǔ)學(xué)習(xí)教程,文中使用的是Python2.x版本但條件語句部分的使用規(guī)則未在3.x中改變,需要的朋友可以參考下
    2016-02-02

最新評論

斗六市| 尉犁县| 高阳县| 邻水| 望奎县| 海晏县| 朝阳区| 汝南县| 绥阳县| 青海省| 东乡族自治县| 宁津县| 余庆县| 夹江县| 涟源市| 南丰县| 泸溪县| 桃江县| 徐闻县| 天峨县| 五常市| 沧州市| 吴桥县| 江口县| 黄浦区| 准格尔旗| 广宗县| 开阳县| 永登县| 都昌县| 临海市| 哈巴河县| 岑巩县| 萨嘎县| 章丘市| 石柱| 涡阳县| 和田县| 东港市| 大渡口区| 房产|