我是新来的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