python 实现一个反向单位矩阵示例

yipeiwu_com6年前Python基础

反向单位矩阵

单位矩阵即对角线为 1,如下:

那么反向的单位矩阵就是反对角线为 1:

左右镜像操作

这里采用 numpy 实现。

方案 1

import numpy as np

A = np.eye(3)
print(A)
B1 = np.fliplr(A)
print(B1)

方案 2

B2 = A[:,::-1]
print(B2)

这面这两种方案就可以顺利实现反向单位矩阵的定义了。此外,我们拓展了另外两种操作。

上下镜像操作

方法 1

import numpy as np

b = [1, 2, 3]
B = np.diag(b)
print(B)
# [[1 0 0]
# [0 2 0]
# [0 0 3]]
B3 = np.rot90(B)
print(B3)
# [[0 0 3]
# [0 2 0]
# [1 0 0]]

方法 2

B4 = np.flipud(B)
print(B4)

取上三角和反对角线元素

取上三角元素

目标是:

[[1 2 3]
 [4 5 6]
 [7 8 9]]
 
 ==>
 
 [2. 3. 6.]
import numpy as np

row = 3
A = np.arange(row**2)+1
A = np.mat(A.reshape([row, row]))
# print(A)

def ReduceData(R_xx, row):
  '''
  取上三角元素
  '''
  vector = []
  for i in range(0, row):
    a = R_xx[i, i + 1:]
    vector = np.append(vector, a)

  return vector

print(ReduceData(A, row))

取反对角线元素

[[1 2 3]
 [4 5 6]
 [7 8 9]]

==>

[3 5 7]
def DiagData(R_xx, row):
  '''
  取反对角线元素
  '''
  # vector = []
  vector = np.rot90(R_xx)
  vector = np.diag(vector)

  return vector


print(DiagData(A, row))

以上这篇python 实现一个反向单位矩阵示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python的Flask框架中@app.route的用法教程

在我上一篇文章,我搭了一个框架,模拟了Flask网站上“@app.route(‘/')”第一条例子的行为。 如果你错过了那篇“这不是魔法”,请点击这里。 在这篇文章中,我们打算稍微调高点...

浅谈numpy数组的几种排序方式

简单介绍 NumPy系统是Python的一种开源的数组计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多...

详解Python中open()函数指定文件打开方式的用法

文件打开方式 当我们用open()函数去打开文件的时候,有好几种打开的模式。 'r'->只读 'w'->只写,文件已存在则清空,不存在则创建。 'a'->追加,写到文件...

python找出列表中大于某个阈值的数据段示例

python找出列表中大于某个阈值的数据段示例

该算法实现对列表中大于某个阈值(比如level=5)的连续数据段的提取,具体效果如下: 找出list里面大于5的连续数据段: list = [1,2,3,4,2,3,4,5,6,7,...

跟老齐学Python之玩转字符串(3)

字符串就是一个话题中心。 给字符串编号 在很多很多情况下,我们都要对字符串中的每个字符进行操作(具体看后面的内容),要准确进行操作,必须做的一个工作就是把字符进行编号。比如一个班里面有5...