检查多维 numpy 数组的所有边是否都是零数组

2024-05-24

n 维数组有 2n 个边(1 维数组有 2 个端点;2 维数组有 4 个边或边;3 维数组有 6 个 2 维面;4 维数组有 8 个边; ETC。)。这类似于抽象 n 维立方体发生的情况。

我想检查 n 维数组的所有边是否仅由零组成。以下是边由零组成的数组的三个示例:

# 1D
np.array([0,1,2,3,0])
# 2D
np.array([[0, 0, 0, 0],
          [0, 1, 0, 0],
          [0, 2, 3, 0],
          [0, 0, 1, 0],
          [0, 0, 0, 0]])
# 3D
np.array([[[0, 0, 0, 0],
           [0, 0, 0, 0],
           [0, 0, 0, 0]],
          [[0, 0, 0, 0],
           [0, 1, 2, 0],
           [0, 0, 0, 0]],
          [[0, 0, 0, 0],
           [0, 0, 0, 0],
           [0, 0, 0, 0]]])

如何检查多维 numpy 数组的所有边是否都是零数组?例如,使用一个简单的二维数组,我可以这样做:

x = np.random.rand(5, 5)
assert np.sum(x[0:,  0]) == 0
assert np.sum(x[0,  0:]) == 0
assert np.sum(x[0:, -1]) == 0
assert np.sum(x[-1, 0:]) == 0

虽然这种方法适用于 2D 情况,但它不能推广到更高维度。我想知道是否有一些聪明的 numpy 技巧可以在这里使用,以使其高效且更易于维护。


您可以这样做:

assert(all(np.all(np.take(x, index, axis=axis) == 0)
           for axis in range(x.ndim)
           for index in (0, -1)))

np.take https://docs.scipy.org/doc/numpy/reference/generated/numpy.take.html与“花式”索引执行相同的操作。

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

检查多维 numpy 数组的所有边是否都是零数组 的相关文章

随机推荐

  • 如何从 VxWorks 中的 RTP 访问内存映射 I/O 设备 (FPGA)?

    使用 VxWorks 时 我们尝试从实时进程访问内存映射 I O 设备 由于 RTP 具有内存保护 我如何从其中访问我的 I O 设备 您可以使用两种方法从 RTP 访问 I O 映射设备 输入 输出子系统 首选 您本质上是创建一个小型设备
  • 自定义 AlertDialog - android.R.id.custom 的问题

    我确信我错过了这里的重点 所以我希望有人能解释一下 我想在用户触摸时创建一个弹出窗口ImageView 我看了一下AlertDialog文档说 如果您想显示更复杂的视图 请查找名为 custom 的 FrameLayout 并将您的视图添加
  • nuxt如何访问javascript文件中的env

    我无法在 nuxt 2 15 之外访问我的环境变量 当我部署时我可以看到 nuxt context config在浏览器中有正确的变量 但在自定义js文件中我无法访问process env baseURL它返回未定义 nuxt config
  • 如何获取对象具有的属性计数?

    我有一个具有许多属性的类 我需要找到一种方法来计算它所具有的属性数量 我想这样做是因为该类读取 CSV 文件 并且如果属性 csvcolumns 的数量小于文件中的列数 则需要发生特殊的事情 这是我的班级的示例 public class S
  • 非静态方法需要一个目标

    private PMS USERS currUser private bool validateUserName dbContext new PmsEntities var validateUser dbContext PMS USERS
  • SQLAlchemy:检查给定值是否在列表中

    问题 在 PostgreSQL 中 检查某个字段是否在给定列表中是使用IN操作员 SELECT FROM stars WHERE star type IN Nova Planet SQLAlchemy 的等价物是什么INSQL查询 我尝试过
  • Python 列表理解不适用于 itertools.groupby 解码

    我正在尝试解码结果itertools groupby到一个值列表中 我的来源是 x 1 2 2 1 6 3 6 5 1 3 最初的方法是使用 for 语句来实现 如下所示 keyfunc itemgetter 0 groups unique
  • 使用 MySQL 计算时间线中的变化

    我是 MySQL 新手 我需要你的帮助 我有一个包含类似数据的表 RobotPosX RobotPosY RobotPosDir RobotShortestPath 0 1 0 2 15 1456 0 2 0 3 30 1456 0 54
  • Xcode如何将目标打包为.framework(而不是.a库)

    我有一个通用框架项目 其中包含一个库作为其主要目标 在产品下是带有 lib 前缀和 a 扩展名的库 请参阅下面的屏幕截图 我正在使用一个第三方项目 其中包含一个框架作为其目标 并且在 产品 下是具有 framework 扩展名的框架 请参阅
  • Firestore 定价 - 集合中的文档数量重要吗?

    我读过文档 https firebase google com docs firestore pricing我需要为我提出的请求金额付费read write or update documents 我也读到过collection价格与阅读相
  • matlab中优先级队列的实现方法

    matlab中有没有提供minpriorityqueue功能的库 import java util PriorityQueue import java util public class MyQueue Comparator
  • S3 选择检索 CSV 中的标头

    我尝试使用以下代码从存储在 S 存储桶中的 CSV 中获取记录子集 s3 boto3 client s3 bucket bucket file name file sql stmt SELECT S FROM s3object S LIMI
  • forrt1:严重(170):程序异常 - 堆栈溢出

    并提前感谢您的帮助 我已经编译了一个程序 不是我编写的 它在 Mac 上运行得很好 但是当我尝试在 Windows 上执行该程序时 在程序开始执行后不久 我收到以下错误消息 forrt1 严重 170 程序异常 堆栈溢出 我不是 ifort
  • 禁用 ASP.NET Core 3.1 项目的 web.config 生成

    The dotnet publish我的 ASP NET Core 3 1 项目的命令创建了一个web config文件在我的publish 目录 我不希望生成此文件 或至少复制到该文件夹 它根本不能与 IIS 一起使用 当我查看更加详细的
  • 不要回显 cURL

    当我使用这段代码时 ch curl init url statuses curl exec ch curl close ch 我得到了我想要的东西 但如果我只是使用它 statuses被回显到页面上 我怎样才能阻止这个 将其放在第 2 行
  • 如何执行 ImageMagick 仅将多页 PDF 的第一页转换为 JPEG?

    我如何执行 ImageMagick 的convert如果我想要 JPEG仅从第一页开始多页 PDF 如果您使用的是convert命令行您可以使用以下参数执行它 convert source pdf 0 output jpeg 请注意 Ima
  • 如何在 PowerShell 中处理命令行参数

    处理命令行参数的 最佳 方法是什么 似乎有几个关于 最佳 方法是什么的答案 因此我陷入了如何处理像这样简单的事情上 script ps1 n name d domain AND script ps1 d domain n name 有没有一
  • 用户表到用户和用户首选项。这是正常化了吗?

    我有一张桌子叫Users其偏好列表不断增加 这些首选项可以包括 ReligionId 它将连接到另一个包含宗教列表的表 偏好列表正在不断增加 我想把它分开Users表分成2个表 我认为行之有效的策略是制作一个单独的表 名为UserPrefe
  • Gradle 控制台 - 获取更多日志输出

    我正在使用Android Studio 在 gradle 控制台中收到以下错误消息 编译错误 查看日志了解更多详情 尝试 使用 stacktrace 选项运行以获取堆栈跟踪 使用 info 或 debug 选项运行以获得更多日志输出 构建失
  • 检查多维 numpy 数组的所有边是否都是零数组

    n 维数组有 2n 个边 1 维数组有 2 个端点 2 维数组有 4 个边或边 3 维数组有 6 个 2 维面 4 维数组有 8 个边 ETC 这类似于抽象 n 维立方体发生的情况 我想检查 n 维数组的所有边是否仅由零组成 以下是边由零组