1. 程式人生 > >python小練習——(二)

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)

執行結果如下:
這裡寫圖片描述
雖然很容易,但是小編還是會一步一個腳印的向大佬進發!