python计算一个矩阵的主对角线_python – 使用numpy获取多维数组的所有对角线(包括次要对角线)...
我试图获得多维物体的对角线(和反对角线)元素.
形状如(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获取多维数组的所有对角线(包括次要对角线)...相关推荐
- python计算坐标点欧式距离_Python计算一个点到所有点的欧式距离实现方法
Python计算一个点到所有点的欧式距离实现方法 如下所示: distances = np.sqrt(np.sum(np.asarray(airportPosition - x_vals)**2, a ...
- python一维数组和二维数组_Python numpy实现二维数组和一维数组拼接的方法
Python numpy实现二维数组和一维数组拼接的方法 撰写时间:2017.5.23 一维数组 1.numpy初始化一维数组 a = np.array([1,2,3]); print a.shape ...
- python读取二维数组的行列数_Python获取二维数组的行列数的2种方法
Python获取二维数组的行列数的2种方法 这篇文章主要介绍了Python获取二维数组的行列数的2种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考 ...
- python如何保存矩阵,保存matrix,保存numpy.ndarray
2018博客之星评选,如果喜欢我的文章,请投我一票,编号:No.009 支持连接 ,万分感谢!!! 问题:如何将array保存到txt文件中?如何将存到txt文件中的数据读出为ndarray类型?py ...
- 6-2 指针与数组-矩阵的各列求和分数 10 本题要求实现一个函数,求一个n (小于10)行7列的二维数组各列的和。将各列和存放在一个至少7个单元的一维数组中。函数接口定义:
本题要求实现一个函数,求一个n (小于10)行7列的二维数组各列的和.将各列和存放在一个至少7个单元的一维数组中. 函数接口定义: void fun ( int data[][7], int resu ...
- python一维数组和二维数组,Python numpy实现二维数组和一维数组拼接的方法
撰写时间:2017.5.23 一维数组 1.numpy初始化一维数组 a = np.array([1,2,3]); print a.shape 输出的值应该为(3,) 二维数组 2.numpy初始化二 ...
- Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置。
Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置 题目 破题 代码 Test13 Test13_Location 运行结果 ...
- python 计算召回率的程序_python实现计算精度、召回率和F1值
python实现计算精度.召回率和F1值 摘要:在深度学习的分类任务中,对模型的评估或测试时需要计算其在验证集或测试集上的预测精度(prediction/accuracy).召回率(recall)和F ...
- python 计算数字位数,Python | 计算一个数字的总位数
先决条件: Python中的二进制数系统 给定一个数字,我们必须使用Python查找二进制值的总位数来表示该数字. 示例 Input: num = 61 Binary value of 61 is = ...
最新文章
- php当前页面的链接地址,PHP 技巧:如何获取当前页面的链接地址
- RedHat linux inittab详解
- html让下拉条消失,CSS 实现隐藏滚动条同时又可以滚动
- OJ1042: 数列求和3(递推思想)
- 关于微信小程序中uView中通过packer选择器修改表单无法触发form组件的表单验证的问题
- 随笔记——Apache
- GTP协议中的APN,TEID,NSAPI,TID
- 孝当先健康管理品牌连锁项目说明会-南昌站圆满结束
- 知云文献翻译打不开_【小虎聊干货】八大翻译软件大揭秘,告诉你科研翻译的正确打开方式...
- 第一章.计算机组成与体系结构
- 西安建筑科技大学计算机系专业怎么样,西安建筑科技大学好就业吗?附西安建筑大学就业年薪...
- android开发笔记之联系人百家姓功能的实现
- 注册服务号、订阅号流程
- 洛谷 P1085	不高兴的津津 C语言
- WPF Border 设置只加一边
- 前端图片加载优化的各种技巧
- 看完现在年轻人的开发环境,我汗颜了,不服老不行【如何让你的IDLE与众不同】
- UML统一建模语言第1章 UML概述课后习题
- Mac中IDEA的工具栏隐藏显示的解决方法
- 小白进阶之Scrapy安装.使用.爬取顶点小说信息