2017-09-22 255 views
0

我是新來的Python,我需要一個動態矩陣,我可以操縱它添加更多的列和行。我讀了關於numpy.matrix的內容,但是我找不到上面提到的那種方法。我想到了使用列表,但我想知道是否有更簡單的方法來實現它或更好的實現。Python中的動態矩陣

什麼,我找實例:

matrix.addrow() 
matrix.addcolumn() 
matrix.changeValue (0, 0, "$200") 

我是不是要求太多了?如果是這樣,關於如何實現類似的東西的任何想法?謝謝!

回答

1

您可以在numpy(例如np.concatenate)或本機python(my_list.append())中執行所有操作。哪一個更有效率取決於你的程序會做什麼:如果你所做的只是一次添加/更改一個值,或者做了大量的「添加」或「刪除」列,numpy的效率可能會降低。但是,如果您執行矩陣或列操作,向numpy數組添加新列的開銷可能會被numpy提供的矢量化計算速度所抵消。所以選擇你更喜歡哪一種,如果速度是一個問題,那麼你需要用兩種方法來實驗自己...

-1

有幾種方法可以用Python來表示矩陣。您可以使用列表或numpy數組列表。例如,如果你使用numpy的陣列

>>> import numpy as np 
>>> a = np.array([[1,2,3], [2,3,4]]) 
>>> a 
array([[1, 2, 3], 
     [2, 3, 4]]) 

要添加行

>>> np.vstack([a, [7,8,9]]) 
array([[1, 2, 3], 
     [2, 3, 4], 
     [7, 8, 9]]) 

要添加列

>>> np.hstack((a, [[7],[8]])) 
array([[1, 2, 3, 7], 
     [2, 3, 4, 8]]) 
+0

的OP似乎也意識到numy的了。幾乎在任何情況下,列表列表的行爲都不會像矩陣,包括這裏詢問的那個列表。 – user2699