python小练习——(二)

话不多说,直接放代码:

import numpy as np
import math
#第一题,考虑一个数组z=[1,2,3,4,5,6,7,8,9,10,11,12,13,14],如何生成一个数组R=[[1,2,3,4],[2,3,4,5]...,[11,12,13,14]]
z=[1,2,3,4,5,6,7,8,9,10,11,12,13,14]
R=[]
for i in range(0,len(z)-3):
    a=z[i:(i+4)]
    R.append(a)
print(R)

#----------------------------------------------------------------------------------------------------------------
#第二题,计算矩阵的秩
a=[[1, 2, 3, 4],
   [2, 3, 4, 5],
   [3, 4, 5, 6],
   [4, 5, 6, 7],
   [5, 6, 7, 8]]
s=np.linalg.matrix_rank(a)
print("矩阵的秩为:%d"%s)

#----------------------------------------------------------------------------
#考虑p个n*n矩阵,和p个形状为(n,1)的向量,如何直接计算P个矩阵和向量间的乘积
p=int(input("请输入n*n矩阵的个数:"))
n=10
a=np.ones((p,n,n))#p为个数
b=np.ones((p,n,1))#n行1列
c=np.tensordot(a, b, axes=([0, 2], [0, 1]))
print(c)

#---------------------------------------------------------------------------
#第四题,计算任意两幅图之间的hamming距离和欧式距离
from math import sqrt
a=np.matrix([1,2,3])#矩阵,即二维数组
b=np.matrix([4,5,6])
c=sqrt((a-b)*((a-b).T))
print(c)#欧氏距离
#--------------------------
a=np.array([1,2,3])#表示多维数组
b=np.array([4,5,6])
c=sqrt(np.dot((a-b),(a-b).T))
print(c)
#---------hamming距离,两个图像经过多少次变换才相同的步骤----------------------
#方法一
def hamming_distance(s1, s2):
    assert len(s1) == len(s2)#断言函数使s1和s2的长度相等
    return sum(ch1 != ch2 for ch1, ch2 in zip(s1, s2))#zip函数将s1和s2打包成一个元组

print (hamming_distance("gdad","glas"))#哈明距离
#方法二
x=np.random.random(10)>0.5
y=np.random.random(10)>0.5
x=np.asarray(x,dtype=np.int32)#将列表转换为数组
y=np.asarray(y,dtype=np.int32)
d1=np.mean(x!=y)#记录x和y中不相等元素出现的次数
print(d1)

运行结果如下:
这里写图片描述
虽然很容易,但是小编还是会一步一个脚印的向大佬进发!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

smile_wuzx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值