让两条对角线都通过矩阵项 (i,j) 的 Pythonic 方法

2023-12-28

获取矩阵中通过条目的对角线元素列表的Pythonic方法是什么(i,j)?

例如,给定一个矩阵:

[1  2  3   4  5]
[6  7  8   9 10]
[11 12 13 14 15]
[16 17 18 19 20]
[21 22 23 24 25]

和一个条目,比如说,(1,3)(代表元素9)如何让对角线上的元素穿过9以Python式的方式?基本上,[3,9,15] and [5,9,13,17,21] both.


Using np.diagonal https://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.diagonal.html有一点偏移逻辑。

import numpy as np

lst = np.array([[1,  2,  3,   4,  5],
                [6,  7,  8,   9, 10],
                [11, 12, 13, 14, 15],
                [16, 17, 18, 19, 20],
                [21, 22, 23, 24, 25]])


i, j = 1, 3
major = np.diagonal(lst, offset=(j - i))
print(major)
array([ 3,  9, 15])

minor = np.diagonal(np.rot90(lst), offset=-lst.shape[1] + (j + i) + 1)
print(minor)
array([ 5,  9, 13, 17, 21])

指数i and j是行和列。通过指定偏移量,numpy知道从哪里开始选择对角线的元素。

For the major diagonal, You want to start collecting from 3 in the first row. So you need to take the current column index and subtract it by the current row index, to figure out the correct column index at the 0th row. Similarly for the minor diagonal, where the array is flipped (rotated by 90˚) and the process repeats.

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

让两条对角线都通过矩阵项 (i,j) 的 Pythonic 方法 的相关文章

随机推荐

  • 方法重载解决意外行为

    我正在努力解决 net 的一个奇怪的方法重载解析 至少对我来说是这样 我写了一个小样本来重现该问题 class Program static void Main string args var test new OverloadTest t
  • 分层数据结构设计(嵌套集)

    我正在研究分层数据库结构的设计 该结构对包含产品的目录进行建模 这类似于这个问题 https stackoverflow com questions 112866 database schema for a hierarchial grou
  • std::default_random_engine 即使改变种子也会生成相同的值?

    我正在尝试实现一个类 该类将充当随机库的包装器 这样我就可以在代码中的其他地方以 我认为 更直观的方式使用它的对象和函数 在我的标题中 我有这样的内容 class RandomDevice private unsigned long ran
  • 使用 XNA 在游戏窗口中显示矩形

    我想将我的游戏网格划分为矩形数组 每个矩形的大小为 40x40 每列有 14 个矩形 总共 25 列 这覆盖了 560x1000 的游戏区域 这是我设置的用于在游戏网格上制作第一列矩形的代码 Rectangle gameTiles new
  • 在Golang中,如何将泛型类型的接口与nil进行比较?

    我需要一个链接节点来保存一些不同的接口类型 所以我用泛型来制作它 但是泛型类型any无法与 nil 进行比较 它显示错误 如评论中所示 package main type myInterface interface type node T
  • java中以UTF-8编码输出

    我对使用 eclipse 的程序的输出文件有问题 我将 eclipse 设置为 UTF 8 并使用 System getProperty file encoding 我得到 UTF 8 我通过 eclipse 运行选项运行我的程序 输出 文
  • 如何使用 Selenium 和 IE 下载文件避免下载提示

    我想直接从网页下载文件 而不处理下载提示弹出窗口 为此目的 我使用了适当的偏好Firefox 就像是 from selenium webdriver firefox firefox profile import FirefoxProfile
  • 如何在 React Router 中将默认路由设置为另一个路由

    我有以下内容
  • Maven 正在选择旧版本的依赖项

    我正在尝试集成 Maven Spring MVC Rest 但我面临着 maven 没有选择 spring web aop beans context core version 4 3 12 dependency 的问题 maven 正在选
  • PyCharm 调试分段错误(信号 11)

    在PyCharm 社区版2016 2 3 中 使用anaconda2 ubuntu 14 04 import matplotlib在调试模式期间导致信号 11 错误 在release模式下执行脚本没有问题 蟒蛇代码 import matpl
  • Valgrind/R 无法工作:“致命错误:无法创建 'R_TempDir'”

    首先 我对这些东西不太熟练 所以我可能会写一些愚蠢的问题 请友善 我有一个调用 C 代码的 R 代码 不幸的是 我的代码有问题 可能是内存未映射 我想使用 valgrind 尝试了解错误所在 几年前我已经使用过它 但现在似乎不起作用 当我午
  • 当 Reveal.js 幻灯片激活时如何触发 GSAP 功能?

    我想在演示文稿中添加一些简单的动画 我使用 GSAP TweenMax 来完成这项工作 我对动画设置没有问题 但是这些动画在演示开始后立即触发 我如何控制它 以便只有当带动画的幻灯片处于活动状态时脚本才会执行 欢迎您提供所有帮助 问候 ED
  • Android 中的 PATCH 动词(OkHttp、Volley、Retrofit...)

    我知道类似的问题已经被问过几次了 但我似乎找不到一个简单问题的解决方案 PATCH verb 因此 我询问任何使用 OkHttp Volley 或 Retrofit 解决 Android 中的 PATCH 问题的人 或者如果您使用不同的方法
  • Localstack 与 MassTransit 未收到消息

    我在使用 LocalStack 测试 MassTransit 时遇到问题 但在 AWS 中使用真正的 SNS SQS 一切正常 因此我怀疑这是 LocalStack 的问题 除非 MassTransit 需要配置 ServiceURL 以外
  • 您可以将 SIP 电话与 Twilio Endpoint 连接吗?如果是这样,怎么办?

    我有一个基于 Linksys Cisco SPA942 电话的 SIP 电话系统 我想将现有的 PBX 排除在外 并使用 Twilio 为我们编写一个自定义 PBX 我熟悉 Twilio 并且过去编写过许多应用程序 但 Twilio 的 S
  • DRF - 发布到 ManyToMany 字段

    在我的 Django 应用程序中 模型 py class Destination models Model name models CharField max length 30 class Ride models Model driver
  • Scala 中的数据压缩

    下面是我尝试实现一个提供压缩 解压缩字符串功能的类 object GZipHelper def deflate txt String Try String try val arrOutputStream new ByteArrayOutpu
  • 如何在ag-grid中获取过滤行?

    我有一个ag Grid https www ag grid com 带过滤选项 如何在ag Grid中获取过滤后的行 而不是选定的行 您可以使用 forEachNodeAfterFilter callback api 方法来实现此目的 Se
  • 垂直打印字符串 - Python3.2

    我正在编写一个脚本 它将作为用户输入的字符串 并垂直打印它 如下所示 input John walked to the store output J w t t s o a o h t h l e o n k r e e d 我已经写了大部
  • 让两条对角线都通过矩阵项 (i,j) 的 Pythonic 方法

    获取矩阵中通过条目的对角线元素列表的Pythonic方法是什么 i j 例如 给定一个矩阵 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 和一个条目 比如