2024-06-26 11:00:09 发布
网友
numpy中有没有什么明显的方法可以取代像:
for x in X: xi, xj = meshgrid(x, x, indexing='ij')
单一(可能)更高效的操作:
X的示例如下:
主要的问题是,我可以在X中有数十万个条目,而且可能操作经常被重复。在
该问题是在有限元法中装配整体刚度矩阵K而引起的。对于长度为n的X中的每一个条目,我都有一个矩阵“nxn”,我必须把它写进这个全局矩阵中。这个矩阵在稀疏稀疏坐标格式。在
你好,马雷克
我认为这回答了问题,虽然我不确定这是否是构建稀疏矩阵的最佳方法。。 不管怎样,下面的代码在X中创建了一个“视图”,因此它在计算和内存方面都非常高效。 试试看:)
X
:)
from numpy.lib.stride_tricks import as_strided m = 3 n = 4 X = np.arange(m*n).reshape((m,n)) sz = X.itemsize Xi = as_strided(X, shape=(m,n,n), strides=(n*sz, sz, 0)) Xj = as_strided(X, shape=(m,n,n), strides=(n*sz, 0, sz))
但是,当X不是正则矩阵时,这就不起作用了。E、 在你的例子中,第三行有5个元素,而其他行有6个元素。在
我认为这回答了问题,虽然我不确定这是否是构建稀疏矩阵的最佳方法。。 不管怎样,下面的代码在
X
中创建了一个“视图”,因此它在计算和内存方面都非常高效。 试试看:)
但是,当
X
不是正则矩阵时,这就不起作用了。E、 在你的例子中,第三行有5个元素,而其他行有6个元素。在相关问题 更多 >
编程相关推荐