註釋
- dtype=np.int代表導入數據的格式爲整數
- delimiter=’,'代表原始數據的存儲格式爲以‘,’爲間隔
- 原始文件中以‘#’開頭的行代表被註釋,不會被np.loadtxt讀取
- 通過[[0] * b for i in range(a)]的方式初始化一個x[a][b]的二維數組
- np.savetxt()函數可以用來保存數據,第一個參數爲保存數據的路徑,其中C是自定義的文件名,如果該文件不存在,則會自動生成一個C文件,第二個參數爲需要保存的數據,fmt是數據儲存的格式,%d表示以整數儲存,delimiter爲數據間的分隔符,header爲頭標,footer爲尾標
源碼
#import random
import numpy as np
A = np.loadtxt('/Volumes/Cheney/A.txt',dtype=np.int,delimiter=',')
B = np.loadtxt('/Volumes/Cheney/B.txt',dtype=np.int,delimiter=',')
colA=(len(A[0]))#矩陣A的列數
rowA=(len(A))#矩陣A的行數
colB=(len(B[0]))#矩陣B的列數
rowB=(len(B))#矩陣B的行數
colC=colB#矩陣C的列數
rowC=rowA#矩陣C的行數
#rowA=colB=rowC
C = [[0] * colC for i in range(rowC)] #初始化C
print(A)
print(B)
#矩陣乘法
for i in range(rowC):
for j in range(colC):
#遍歷每一個元素
for k in range(colC):
C[i][j]+=A[i][k]*B[k][j]
print(C)
#保存
np.savetxt(r'/Volumes/Cheney/C.txt',C,fmt="%d", delimiter=',', header=str(rowC)+"行,"+str(colC)+"列",footer='By Accelerator')
效果
A和B兩個源文件
矩陣A*B得到的C文件