我是新來的Python,我需要一個動態矩陣,我可以操縱它添加更多的列和行。我讀了關於numpy.matrix的內容,但是我找不到上面提到的那種方法。我想到了使用列表,但我想知道是否有更簡單的方法來實現它或更好的實現。Python中的動態矩陣
什麼,我找實例:
matrix.addrow()
matrix.addcolumn()
matrix.changeValue (0, 0, "$200")
我是不是要求太多了?如果是這樣,關於如何實現類似的東西的任何想法?謝謝!
我是新來的Python,我需要一個動態矩陣,我可以操縱它添加更多的列和行。我讀了關於numpy.matrix的內容,但是我找不到上面提到的那種方法。我想到了使用列表,但我想知道是否有更簡單的方法來實現它或更好的實現。Python中的動態矩陣
什麼,我找實例:
matrix.addrow()
matrix.addcolumn()
matrix.changeValue (0, 0, "$200")
我是不是要求太多了?如果是這樣,關於如何實現類似的東西的任何想法?謝謝!
您可以在numpy(例如np.concatenate
)或本機python(my_list.append()
)中執行所有操作。哪一個更有效率取決於你的程序會做什麼:如果你所做的只是一次添加/更改一個值,或者做了大量的「添加」或「刪除」列,numpy的效率可能會降低。但是,如果您執行矩陣或列操作,向numpy數組添加新列的開銷可能會被numpy提供的矢量化計算速度所抵消。所以選擇你更喜歡哪一種,如果速度是一個問題,那麼你需要用兩種方法來實驗自己...
有幾種方法可以用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]])
的OP似乎也意識到numy的了。幾乎在任何情況下,列表列表的行爲都不會像矩陣,包括這裏詢問的那個列表。 – user2699