import numpy as np a = np.random.rand(3,2,2)array([[[ 0.33599705,0.92803544],[ 0.6087729,0.8557143 ]],[[ 0.81496749,0.15694689],[ 0.87476697,0.67761456]],[[ 0.11375185,0.32927167],[ 0.3456032,0.48672131]]])
我想要实现的是同样的东西
from scipy.linalg import block_diagblock_diag(a[0],a[1],a[2])array([[ 0.33599705,0.92803544,0.,0. ],0.8557143,[ 0.,0.81496749,0.15694689,0.87476697,0.67761456,0.11375185,0.3456032,0.48672131]])
这仅仅是在实际情况中具有数百个元素的示例.
解决方法 尝试使用block_diag(* a).见下面的例子:In [9]: pasteimport numpy as npa = np.random.rand(3,2)from scipy.linalg import block_diagb = block_diag(a[0],a[2])c = block_diag(*a)b == c## -- End pasted text --Out[9]:array([[ True,True,True],[ True,True]],dtype=bool)总结
以上是内存溢出为你收集整理的python – 3D numpy数组到块对角矩阵全部内容,希望文章能够帮你解决python – 3D numpy数组到块对角矩阵所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)