3D numpy 数组转换为块对角矩阵

2024-02-21

我正在寻找一种将 nXaXb numpy 数组转换为块对角矩阵的方法。我已经遇到过scipy.linalg.block_diag http://docs.scipy.org/doc/scipy-0.13.0/reference/generated/scipy.linalg.block_diag.html,其缺点(对于我的情况)是它需要单独给出矩阵的每个块。然而,当 n 非常高时,这是具有挑战性的,所以为了让事情更清楚,让我们说我有一个

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_diag
block_diag(a[0], a[1],a[2])
array([[ 0.33599705,  0.92803544,  0.        ,  0.        ,  0.        ,   0.        ],
       [ 0.6087729 ,  0.8557143 ,  0.        ,  0.        ,  0.        ,   0.        ],
       [ 0.        ,  0.        ,  0.81496749,  0.15694689,  0.        ,   0.        ],
       [ 0.        ,  0.        ,  0.87476697,  0.67761456,  0.        ,   0.        ],
       [ 0.        ,  0.        ,  0.        ,  0.        ,  0.11375185,   0.32927167],
       [ 0.        ,  0.        ,  0.        ,  0.        ,  0.3456032 ,   0.48672131]])

这只是一个实际情况中的示例,a 有数百个元素。


尝试使用block_diag(*a)。请参阅下面的示例:

In [9]: paste
import numpy as np
a = np.random.rand(3,2,2)
from scipy.linalg import block_diag
b = block_diag(a[0], a[1],a[2])

c = block_diag(*a)
b == c

## -- End pasted text --
Out[9]:
array([[ True,  True,  True,  True,  True,  True],
       [ True,  True,  True,  True,  True,  True],
       [ True,  True,  True,  True,  True,  True],
       [ True,  True,  True,  True,  True,  True],
       [ True,  True,  True,  True,  True,  True],
       [ True,  True,  True,  True,  True,  True]], dtype=bool)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

3D numpy 数组转换为块对角矩阵 的相关文章

随机推荐

  • Django admin:缺少某些记录的内联

    我在 django 管理站点和内联方面遇到一些问题 我已经用谷歌搜索解决方案两天了 但一无所获 我有两个模型 class Measurement models Model user models ForeignKey User date m
  • 在 Android 游戏中保存高分 - 共享首选项

    最近我正在开发一个简单的android游戏 对于评分部分 我在许多网站上都提到共享偏好最能保存高分 现在 如果我需要保存游戏中不同关卡的高分该怎么办 我希望保存每个级别的前三名得分手的得分 要保存您的分数 您可以执行以下操作 prepare
  • 直接写入 std::string 内部缓冲区

    我正在寻找一种跨 DLL 边界将一些数据填充到字符串中的方法 因为我们使用不同的编译器 所以我们所有的dll接口都是简单的char 是否有正确的方法将指针传递到 dll 函数中 以便它能够直接填充字符串缓冲区 string stringTo
  • 我应该使用什么技术来编写游戏? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Google Player 游戏服务错误:无法构建示例游戏

    我无法构建示例游戏TypeANumberChallenge由 Google 提供 参见GitHub https github com playgameservices android basic samples tree master Ba
  • 从指定的屏幕区域创建位图

    我正在尝试从屏幕上的特定区域创建位图 例如 在下图中 我如何捕获下面的窗口区域并将其转换为位图 我知道您可以使用 setDrawingCacheEnabled true 但是当我想要的只是视图中的一个区域时 它会捕获整个视图 其实你可以用A
  • RStudio 演示文稿/slidify/pandoc 中的两列布局

    我正在尝试想出一个好的系统来生成幻灯片和随附的讲义 理想的系统将具有以下属性 演示文稿 PDF HTML 和讲义 PDF 布局都很漂亮 讲义应该有做笔记的空间 嵌入 R 块 图形 其他 JPG PNG 图片等 易于创作 使用命令行工具构建
  • 如何声明一个字节ArrayList

    我正在尝试做 var mahByteArray new ArrayList
  • 如何更改CUDA版本

    我在编译修改后的caffe版本时遇到了这个错误 OpenCV static library was compiled with CUDA 7 5 support Please use the same version or rebuild
  • 自由格式代码可以包含在固定格式代码中吗?

    我继承了一个固定格式文件 FFTRUN f 该文件的开头如下所示 SUBROUTINE FFTRUN 2e USE intrinsic ISO C BINDING USE FFTWmod ONLY FFTWplan fwd FFTWplan
  • 发布到 IIS 后启用 CORS 不起作用

    我将 dotnet core 2 2 Web api 应用程序托管到本地 IIS 当我运行托管网站时 网站正在运行 我正在尝试从角度登录 但它不起作用 It says 从源 http localhost 4200 访问位于 http 192
  • 如何在维护模式下使用 Nginx 提供静态资产(503)[重复]

    这个问题在这里已经有答案了 我在我的网站服务器上使用 Nginx 作为前端代理 我想用它来将用户重定向到我的 Web 应用程序 当它处于活动状态时 或当我处于维护模式时将用户重定向到维护 php 页面 这是我的服务器指令 server li
  • Node.js process.exit() 不会在 createReadStream 打开时退出

    我有一个通过 EAGI 与 Asterisk 通信的程序 Asterisk 打开我的 Node js 应用程序并通过 STDIN 向其发送数据 程序通过 STDOUT 发送 Asterisk 命令 当用户挂断电话时 Node js 进程会收
  • C *[] 和 ** 之间的区别

    这可能是一个有点基本的问题 但是写 char 和 char 有什么区别 例如 在 main 中 我可以有一个 char argv 或者我可以使用 char argv 我认为这两种符号之间一定存在某种差异 在这种情况下 根本没有区别 如果您尝
  • 如何在 Java 中向字符串添加换行符?

    在 Java 应用程序中 我创建一个如下所示的字符串 通过串联 String notaCorrente dataOdierna testoNotaCorrente 我的问题是我想在此字符串末尾添加类似 HTML 换行符的内容 将显示在 HT
  • 子串上的熔化和合并 - Python 和 Pandas

    我有数据 其中有类似的数据 id name model ms bp1 cd1 sf1 sa1 rq1 bp2 cd2 sf2 sa2 rq2 1 John 23984 1 23 234 124 25 252 252 62 194 234 2
  • 将参数传递给 AddHostedService

    我正在编写一个 Net Core Windows 服务 下面是一段代码 internal static class Program public static async Task Main string args var isServic
  • 如何使用 Swagger UI 访问 AWS API Gateway 文档

    我已经使用 AWS Api Gateway 创建了 API 然后我记录了所有实体的文档部分 如 API 资源 方法 模型等 然后使用 AWS Gateway Console 我已将文档发布到dev阶段与版本1 但我不确定我 或 API 的使
  • GWT - MVP 事件总线。创建多个处理程序

    我正在处理我继承的大型应用程序 并且遇到了一些最佳实践问题 每次用户导航到我们的客户编辑页面时 都会创建一个新的演示者并设置一个视图 有一个用于客户编辑的主演示者和一个主视图 主视图中还存在由主演示者的子演示者使用的子视图 在子演示者中 我
  • 3D numpy 数组转换为块对角矩阵

    我正在寻找一种将 nXaXb numpy 数组转换为块对角矩阵的方法 我已经遇到过scipy linalg block diag http docs scipy org doc scipy 0 13 0 reference generate