【Python】随机矩阵生成,矩阵拉成列向量,转置,统计矩阵中某元素个数,计算矩阵间汉明距离

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/StupidAutofan/article/details/79083739

Python:随机矩阵生成,reshape,转置,统计矩阵中某元素个数,计算矩阵间汉明距离

初学python,遇到了许多问题,在此记录,以便大家共同学习。
本文主要是python矩阵操作的一些基本问题,用到了包为numpy。

一、随机矩阵生成以及reshape、转置问题

python代码

[python]
import numpy as np
from numpy import random as rd
a = rd.randint(0,10,(5,5))  #生成一个尺寸为5*5,取值在0-10之间的随机矩阵
a1 = a.reshape(25,order='F')#25为reshape后的向量尺寸,order表示拉列向量的方式,‘F’表示按列拉
a2 = a.reshape(25,order='C')#‘C’表示按行,具体结果示例见下图
a3=a.T
print a
print a1
print a2

这里写图片描述

图中a1和a2分别是将矩阵a按列与按行拉成的向量,从输出的结果可以看出’order‘不同参数对应的排列方法。

这里写图片描述
图中a3为a的转置矩阵。

二、统计矩阵中某个元素的个数

python代码

[python]
b = a==3 #得到布尔矩阵b,a中等于5的地方为true,其他为false
z = a[b]
print z.size
print b

从运行结果,可以看出矩阵b的类型

这里写图片描述

三、计算矩阵间汉明距离

汉明距离定义:汉明距离是使用在数据传输差错控制编码里面的,汉明距离是一个概念,它表示两个(相同长度)字对应位不同的数量,我们以d(x,y)表示两个字x,y之间的汉明距离。对两个字符串进行异或运算,并统计结果为1的个数,那么这个数就是汉明距离。出处:汉明距离百度百科
python 代码

[python]
from numpy import random as rd
a = rd.randint(0,2,(5,5))#随机生成两个0、1矩阵
x = rd.randint(0,2,(5,5))
print a
print x
d=abs(a-x) #两个矩阵求差,并取绝对值
b = d==1 #统计差矩阵中值为1的部分,即统计两个矩阵值不同的数为汉明距离
c=d[b]
print 'the distance is ',c.size

运行结果,这两个矩阵汉明距离为11
这里写图片描述

申明

本文为本人原创,转载请注明出处!

参考文献

1、https://baike.baidu.com/item/%E6%B1%89%E6%98%8E%E8%B7%9D%E7%A6%BB/475174?fr=aladdin
2、
http://blog.csdn.net/Yan456jie/article/details/52096582

猜你喜欢

转载自blog.csdn.net/StupidAutofan/article/details/79083739