溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何在python中將讀取的文件轉(zhuǎn)換為矩陣

發(fā)布時(shí)間:2021-02-23 15:57:33 來(lái)源:億速云 閱讀:727 作者:戴恩恩 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹了如何在python中將讀取的文件轉(zhuǎn)換為矩陣,億速云小編覺(jué)得不錯(cuò),現(xiàn)在分享給大家,也給大家做個(gè)參考,一起跟隨億速云小編來(lái)看看吧!

python可以做什么

Python是一種編程語(yǔ)言,內(nèi)置了許多有效的工具,Python幾乎無(wú)所不能,該語(yǔ)言通俗易懂、容易入門(mén)、功能強(qiáng)大,在許多領(lǐng)域中都有廣泛的應(yīng)用,例如最熱門(mén)的大數(shù)據(jù)分析,人工智能,Web開(kāi)發(fā)等。

代碼流程:

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 np
def 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 1
1 0 1 0
1 0 1 1
1 1 1 1
1
2
3
4

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)換為矩陣,如何覺(jué)得億速云網(wǎng)站的內(nèi)容還不錯(cuò),歡迎將億速云網(wǎng)站推薦給身邊好友。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI