Skip to main content
 首页 » 编程设计

python之如何快速存储 numpy 对象(矩阵)

2025年05月04日16unruledboy

我必须存储一个 numpy 矩阵列表。我尝试了两种方法:

1.创建一个列表并 append 到它:

ls_ws=[] 
for ind in range(iterations): 
    ... 
    ls_ws.append(ls_w) # ls_w is a matrix of size 6,1 

问题:开始时很快,结束时变得很慢。

2.创建一个零矩阵并修改它:

for ind in range(iterations): 
    ... 
    ls_ws=np.matrix(np.zeros((6,iterations)))  

问题:我不是很确定,但这似乎与每次迭代无关,速度相同。
我得到的奇怪的东西,如果我将迭代设置为小数它很快。但是如果我将它设置为像 1500 这样的大数字,那么每次迭代都会非常慢(甚至是第一次迭代)。


第二种方法应该很快,但如果我将迭代次数设置为很大,速度会很慢。为什么?如何解决?

请您参考如下方法:

我认为这里您几乎可以找到一个很好的解决方案,但是您对列与行的处理可能会影响性能:

ls_ws=np.matrix(np.zeros((6,iterations)))  
for ind in range(iterations): 
    ... 
    ls_ws[:,ind]=ls_w 

您应该在第一个维度而不是最后一个维度中迭代。您可以交换尺寸,或者只是这样做:

ls_ws=np.matrix(np.zeros((6,iterations), order='F'))  

当数组很大时,这可能会有所帮助,因为您将访问 6 个元素的连续 block ,而不是每次迭代中的分散位。