numpy - python Numpy"多 meshgrid"

  显示原文与译文双语对照的内容

在numpy中有什么明显的方法可以替代类似的东西:


for x in X:


 xi, xj = meshgrid(x, x, indexing='ij')



使用单个( 可能更有效) 操作,例如:


Xi, Xj = multi_meshgrid(X, X, indexing='ij')



X的示例如下:


X = np.array([[0,1,2,3,4,5], [5,6,7,8,9,10], [11,12,13,14,15],.. .])



主要问题是,我可以在X 中有十几个以上的条目,并且可以能经常重复操作。

有限元法中整体刚度矩阵K的装配问题。 对于长度为n的每个项,我有一个矩阵"n X n",我必须把它记到这个全局矩阵中。 这里矩阵为 scipy.sparse 坐标格式。

,Marek

时间: 原作者:

我认为这回答了问题,尽管我不确定这是否最适合构造稀疏矩阵。 下面的代码在 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 不是正则矩阵时,这就不起作用了。 示例中的比如 第三行具有 5个元素,而其他行具有 6.

...