代碼流程:
1. 從文件中讀入數(shù)據(jù)。
2. 將數(shù)據(jù)轉(zhuǎn)化成矩陣的形式。
3. 對(duì)于矩陣進(jìn)行處理。
具體的python代碼如下:
- 文件路徑需要設(shè)置正確。
- 字符串處理。
- 字符串?dāng)?shù)組到 整型數(shù)組的轉(zhuǎn)化。( nums = [int(x) for x in nums ])
- 矩陣的構(gòu)造。(matrix = np.array(nums))
- numpy模塊在矩陣處理上很有優(yōu)勢(shì)。
列表內(nèi)容
# -*- coding: utf-8 -*-import numpy as npdef readFile(path): # 打開(kāi)文件(注意路徑) f = open(path) # 逐行進(jìn)行處理 first_ele = True for data in f.readlines(): ## 去掉每行的換行符,"/n" data = data.strip('/n') ## 按照 空格進(jìn)行分割。 nums = data.split(" ") ## 添加到 matrix 中。 if first_ele: ### 將字符串轉(zhuǎn)化為整型數(shù)據(jù) nums = [int(x) for x in nums ] ### 加入到 matrix 中 。 matrix = np.array(nums) first_ele = False else: nums = [int(x) for x in nums] matrix = np.c_[matrix,nums] dealMatrix(matrix) f.close()def dealMatrix(matrix): ## 一些基本的處理。 print "transpose the matrix" matrix = matrix.transpose() print matrix print "matrix trace " print np.trace(matrix)# test.if __name__ == '__main__': readFile("matrix")其中matrix文件中的內(nèi)容如下:
0 0 0 11 0 1 01 0 1 11 1 1 11234
python 構(gòu)造m* n的矩陣
- 通過(guò)列表的方式(數(shù)組)進(jìn)行生成矩陣。
- 該矩陣不適用于稀疏矩陣。(稀疏矩陣不會(huì)這樣子進(jìn)行構(gòu)造)
- 注意:如果數(shù)據(jù)量特別大的時(shí)候,這種方法相當(dāng)于將矩陣中的東西全部加載到內(nèi)存中,如果行列達(dá)到10000+,最好考慮使用稀疏矩陣。(易出現(xiàn) MemoryError)
- 稀疏矩陣的運(yùn)算也應(yīng)該考慮。
相關(guān)代碼:
def fixed_matrix(row,col): return [[0 for i in range(col)] for j in range(row)]
以上這篇python 讀文件,然后轉(zhuǎn)化為矩陣的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持武林站長(zhǎng)站。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注