2017-09-22 190 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