我试图获得多维物体的对角线(和反对角线)元素.

形状如(2,2),(3,3,3),(4,4,4,4),(5,5,5,5,5)等.我不认为这太相关了.

我找到了使用ndarray的.diagonal方法获取对角线元素的方法,但我找不到任何可以让我得到反对角线的东西.

那么我必须手工完成吗?

[编辑]

因此对于

array([[[54, 81, 31],

[ 4, 83, 18],

[38, 32, 52]],

[[ 2, 45, 87],

[33, 20, 3],

[85, 31, 35]],

[[ 6, 11, 49],

[39, 76, 75],

[28, 52, 63]]])

所以我想要“横向”对角线,如:

[54, 45, 49],

[ 4. 20, 75],

etc.

但从某种意义上说这些也是水平的

[ 6, 45, 31],

[39, 20, 18]

然后“垂直”的像:

[54, 33, 28],

[81, 20, 52],

etc.

但是这些也是垂直的:

[6, 33, 38],

[11, 20, 32]

然后就是这个,不管你怎么称呼它

[54, 20, 63]

然后这些也是“更长”的对角线,就像前一个(在几何意义上更长,如果你认为矩阵是一个三维几何结构,数字放在一个立方体的顶点,并在中间)他们之间的界限)

[38, 20, 49],

[6, 20, 52]

然后,在这个矩阵中,一个小的对角线将是从右到左或从下到上(但不是同时)的对角线,如:

[31, 45, 6],

[31, 83, 38] # this is the first classical anti-diagonal in the first matrix

当然,我没有把所有的对角线放在这里,但这是我的要求.我不需要从任何主/反对角线偏移的对角线.

如果你也知道这是不可能的,请告诉我,因为我会手工完成.

最佳答案 如果你想要一个从corner1到corner2的对角线并以形式定义角落

(0,0,0,…,0),(0,0,0,….,1),…,(1,1,1,…,1)

其中0表示“此维度为0”,1表示“此维度为-1 /结束”

然后,这将返回从corner1到corner2获得的值,假设数组在每个维度中具有相同的大小.

import numpy

def diagonal(arr,corner1,corner2):

arr=numpy.array(arr)

#Change values to fit array

corner1Copy=(len(arr)-1)*numpy.array(corner1)

corner2Copy=(len(arr)-1)*numpy.array(corner2)

#create return array by running from corner1 to corner2 and returning the values

return [arr[tuple((i*corner2Copy+(len(arr)-i-1)*corner1Copy)/(len(arr)-1))] for i in range(len(arr))]

这里有两个小的测试案例,但我建议创建更多,以防我错过了一些东西:

arr=[[[i+j+k for i in range(5)]for j in range(5)] for k in range(5)]

corner1=[0,0,0]

corner2=[1,1,1]

#returns arr[0,0,0],arr[1,1,1],....,arr[-1,-1,-1]

print(diagonal(arr,corner1,corner2))

print([arr[i][i][i] for i in range(len(arr))])

arr2=[[i+j for i in range(5)]for j in range(5)]

corner12=[0,1]

corner22=[1,1]

#return arr[0,-1],arr[1,-1],....,arr[-1,-1]

print(diagonal(arr2,corner12,corner22))

print([arr2[i][-1] for i in range(len(arr2))])

python计算一个矩阵的主对角线_python – 使用numpy获取多维数组的所有对角线(包括次要对角线)...相关推荐

  1. python计算坐标点欧式距离_Python计算一个点到所有点的欧式距离实现方法

    Python计算一个点到所有点的欧式距离实现方法 如下所示: distances = np.sqrt(np.sum(np.asarray(airportPosition - x_vals)**2, a ...

  2. python一维数组和二维数组_Python numpy实现二维数组和一维数组拼接的方法

    Python numpy实现二维数组和一维数组拼接的方法 撰写时间:2017.5.23 一维数组 1.numpy初始化一维数组 a = np.array([1,2,3]); print a.shape ...

  3. python读取二维数组的行列数_Python获取二维数组的行列数的2种方法

    Python获取二维数组的行列数的2种方法 这篇文章主要介绍了Python获取二维数组的行列数的2种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考 ...

  4. python如何保存矩阵,保存matrix,保存numpy.ndarray

    2018博客之星评选,如果喜欢我的文章,请投我一票,编号:No.009 支持连接 ,万分感谢!!! 问题:如何将array保存到txt文件中?如何将存到txt文件中的数据读出为ndarray类型?py ...

  5. 6-2 指针与数组-矩阵的各列求和分数 10 本题要求实现一个函数,求一个n (小于10)行7列的二维数组各列的和。将各列和存放在一个至少7个单元的一维数组中。函数接口定义:

    本题要求实现一个函数,求一个n (小于10)行7列的二维数组各列的和.将各列和存放在一个至少7个单元的一维数组中. 函数接口定义: void fun ( int data[][7], int resu ...

  6. python一维数组和二维数组,Python numpy实现二维数组和一维数组拼接的方法

    撰写时间:2017.5.23 一维数组 1.numpy初始化一维数组 a = np.array([1,2,3]); print a.shape 输出的值应该为(3,) 二维数组 2.numpy初始化二 ...

  7. Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置。

    Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置 题目 破题 代码 Test13 Test13_Location 运行结果 ...

  8. python 计算召回率的程序_python实现计算精度、召回率和F1值

    python实现计算精度.召回率和F1值 摘要:在深度学习的分类任务中,对模型的评估或测试时需要计算其在验证集或测试集上的预测精度(prediction/accuracy).召回率(recall)和F ...

  9. python 计算数字位数,Python | 计算一个数字的总位数

    先决条件: Python中的二进制数系统 给定一个数字,我们必须使用Python查找二进制值的总位数来表示该数字. 示例 Input: num = 61 Binary value of 61 is = ...

最新文章

  1. php当前页面的链接地址,PHP 技巧:如何获取当前页面的链接地址
  2. RedHat linux inittab详解
  3. html让下拉条消失,CSS 实现隐藏滚动条同时又可以滚动
  4. OJ1042: 数列求和3(递推思想)
  5. 关于微信小程序中uView中通过packer选择器修改表单无法触发form组件的表单验证的问题
  6. 随笔记——Apache
  7. GTP协议中的APN,TEID,NSAPI,TID
  8. 孝当先健康管理品牌连锁项目说明会-南昌站圆满结束
  9. 知云文献翻译打不开_【小虎聊干货】八大翻译软件大揭秘,告诉你科研翻译的正确打开方式...
  10. 第一章.计算机组成与体系结构
  11. 西安建筑科技大学计算机系专业怎么样,西安建筑科技大学好就业吗?附西安建筑大学就业年薪...
  12. android开发笔记之联系人百家姓功能的实现
  13. 注册服务号、订阅号流程
  14. 洛谷 P1085 不高兴的津津 C语言
  15. WPF Border 设置只加一边
  16. 前端图片加载优化的各种技巧
  17. 看完现在年轻人的开发环境,我汗颜了,不服老不行【如何让你的IDLE与众不同】
  18. UML统一建模语言第1章 UML概述课后习题
  19. Mac中IDEA的工具栏隐藏显示的解决方法
  20. 小白进阶之Scrapy安装.使用.爬取顶点小说信息

热门文章

  1. 美国java工资,技术总监都拍手叫好
  2. Android 加载本地图片(文件管理器中的图片墙)
  3. 传感器:土壤湿度传感器(XH-M214)介绍及stm32驱动代码
  4. 一元二次函数的万能公式
  5. 股指期货与融资融券做空机制有什么区别?
  6. 思科网络设备 show version命令输出内容详解
  7. 阿里 P8 总结:SpringCloud+Nginx 并发核心笔记
  8. Windows 平台的安装
  9. 如何在Mirth Connect中创建和调用自定义Java代码
  10. JavaScript事件 DOMNodeInserted DOMNodeRemoved