Numpy“多重网格”

2024-06-26 11:00:09 发布

您现在位置:Python中文网/ 问答频道 /正文

numpy中有没有什么明显的方法可以取代像:

for x in X:
    xi, xj = meshgrid(x, x, indexing='ij')

单一(可能)更高效的操作:

^{pr2}$

X的示例如下:

^{3}$

主要的问题是,我可以在X中有数十万个条目,而且可能操作经常被重复。在

该问题是在有限元法中装配整体刚度矩阵K而引起的。对于长度为n的X中的每一个条目,我都有一个矩阵“nxn”,我必须把它写进这个全局矩阵中。这个矩阵在稀疏稀疏坐标格式。在

你好,马雷克


Tags: 方法innumpy示例for条目矩阵整体
1条回答
网友
1楼 · 发布于 2024-06-26 11:00:09

我认为这回答了问题,虽然我不确定这是否是构建稀疏矩阵的最佳方法。。 不管怎样,下面的代码在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个元素。在

相关问题 更多 >