python生成矩阵_如何在Python中生成矩阵?
你的問(wèn)題的答案取決于你的學(xué)習(xí)目標(biāo)是什么。如果您試圖讓矩陣“點(diǎn)擊”以便以后使用它們,我建議您查看一個(gè)Numpyarray,而不是一個(gè)列表列表。這將使您可以輕松地分割行、列和子集。只要試著從列表中獲取一個(gè)列,你就會(huì)感到沮喪。
使用列表列表作為矩陣
讓我們以您的列表為例:L = [list("ABCDE") for i in range(5)]
很容易為任何行獲取子元素:>>> L[1][0:3]
['A', 'B', 'C']
或整行:>>> L[1][:]
['A', 'B', 'C', 'D', 'E']
但是試著把它轉(zhuǎn)換成列格式的相同元素,它就不起作用了。。。>>> L[0:3][1]
['A', 'B', 'C', 'D', 'E']
>>> L[:][1]
['A', 'B', 'C', 'D', 'E']
你必須使用類似列表理解的方法來(lái)獲取所有的第1個(gè)元素。。。。>>> [x[1] for x in L]
['B', 'B', 'B', 'B', 'B']
輸入矩陣
如果改為使用數(shù)組,您將獲得期望從MATLAB或R(或大多數(shù)其他語(yǔ)言)獲得的切片和索引:>>> import numpy as np
>>> Y = np.array(list("ABCDE"*5)).reshape(5,5)
>>> print Y
[['A' 'B' 'C' 'D' 'E']
['A' 'B' 'C' 'D' 'E']
['A' 'B' 'C' 'D' 'E']
['A' 'B' 'C' 'D' 'E']
['A' 'B' 'C' 'D' 'E']]
>>> print Y.transpose()
[['A' 'A' 'A' 'A' 'A']
['B' 'B' 'B' 'B' 'B']
['C' 'C' 'C' 'C' 'C']
['D' 'D' 'D' 'D' 'D']
['E' 'E' 'E' 'E' 'E']]
抓取第1行(與列表一樣):>>> Y[1,:]
array(['A', 'B', 'C', 'D', 'E'],
dtype='|S1')
抓取列1(新!)以下內(nèi)容:>>> Y[:,1]
array(['B', 'B', 'B', 'B', 'B'],
dtype='|S1')
現(xiàn)在要生成打印矩陣:for mycol in Y.transpose():
print " ".join(mycol)
A A A A A
B B B B B
C C C C C
D D D D D
E E E E E
總結(jié)
以上是生活随笔為你收集整理的python生成矩阵_如何在Python中生成矩阵?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python天天向上续2_2019/2/
- 下一篇: python开发的系统有哪些_Pytho