欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python加載文件內(nèi)容的兩種實(shí)現(xiàn)方式

 更新時(shí)間:2022年09月26日 14:39:31   作者:象在舞  
這篇文章主要介紹了Python加載文件內(nèi)容的兩種實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

說(shuō)到機(jī)器學(xué)習(xí),大家首先想到的可能就是Python和算法了,其實(shí)光有Python和算法是不夠的,數(shù)據(jù)才是進(jìn)行機(jī)器學(xué)習(xí)的前提。

大多數(shù)的數(shù)據(jù)都會(huì)存儲(chǔ)在文件中,要想通過(guò)Python調(diào)用算法對(duì)數(shù)據(jù)進(jìn)行相關(guān)學(xué)習(xí),首先就要將數(shù)據(jù)讀入程序中,本文介紹兩種加載數(shù)據(jù)的方式,在之后的算法介紹中,將頻繁使用這兩種方式將數(shù)據(jù)加載到程序。

下面我們將以Logistic Regression模型加載數(shù)據(jù)為例,分別對(duì)兩種不同的加載數(shù)據(jù)的方式進(jìn)行介紹。

一、利用open()函數(shù)進(jìn)行加載

def load_file(file_name):
    '''
    利用open()函數(shù)加載文件
    :param file_name: 文件名
    :return: 特征矩陣、標(biāo)簽矩陣
    '''
    f = open(file_name)  # 打開(kāi)訓(xùn)練數(shù)據(jù)集所在的文檔
    feature = []  # 存放特征的列表
    label = []  #存放標(biāo)簽的列表
    for row in f.readlines():
        f_tmp = []  # 存放特征的中間列表
        l_tmp = []  # 存放標(biāo)簽的中間列表
        number = row.strip().split("\t")  # 按照\(chéng)t分割每行的元素,得到每行特征和標(biāo)簽
        f_tmp.append(1)  # 設(shè)置偏置項(xiàng)
        for i in range(len(number) - 1):
            f_tmp.append(float(number[i]))
        l_tmp.append(float(number[-1]))
        feature.append(f_tmp)
        label.append(l_tmp)
    f.close()  # 關(guān)閉文件,很重要的操作
    return np.mat(feature), np.mat(label)

二、利用Pandas庫(kù)中的read_csv()方法進(jìn)行加載

def load_file_pd(path, file_name):
    '''
    利用pandas庫(kù)加載文件
    :param path: 文件路徑
    :param file_name: 文件名稱
    :return: 特征矩陣、標(biāo)簽矩陣
    '''
    feature = pd.read_csv(path + file_name, delimiter="\t", header=None, usecols=[0, 1])
    feature.columns = ["a", "b"]
    feature = feature.reindex(columns=list('cab'), fill_value=1)
    label = pd.read_csv(path + file_name, delimiter="\t", header=None, usecols=[2])
    return feature.values, label.values

三、示例

我們可以使用上述的兩種方法加載部分?jǐn)?shù)據(jù)進(jìn)行測(cè)試,數(shù)據(jù)內(nèi)容如下:

數(shù)據(jù)分為三列,前兩列是特征,最后一列是標(biāo)簽。

加載數(shù)據(jù)代碼如下:

'''
兩種方式加載文件
'''
 
import pandas as pd
import numpy as np
 
def load_file(file_name):
    '''
    利用open()函數(shù)加載文件
    :param file_name: 文件名
    :return: 特征矩陣、標(biāo)簽矩陣
    '''
    f = open(file_name)  # 打開(kāi)訓(xùn)練數(shù)據(jù)集所在的文檔
    feature = []  # 存放特征的列表
    label = []  #存放標(biāo)簽的列表
    for row in f.readlines():
        f_tmp = []  # 存放特征的中間列表
        l_tmp = []  # 存放標(biāo)簽的中間列表
        number = row.strip().split("\t")  # 按照\(chéng)t分割每行的元素,得到每行特征和標(biāo)簽
        f_tmp.append(1)  # 設(shè)置偏置項(xiàng)
        for i in range(len(number) - 1):
            f_tmp.append(float(number[i]))
        l_tmp.append(float(number[-1]))
        feature.append(f_tmp)
        label.append(l_tmp)
    f.close()  # 關(guān)閉文件,很重要的操作
    return np.mat(feature), np.mat(label)
 
def load_file_pd(path, file_name):
    '''
    利用pandas庫(kù)加載文件
    :param path: 文件路徑
    :param file_name: 文件名稱
    :return: 特征矩陣、標(biāo)簽矩陣
    '''
    feature = pd.read_csv(path + file_name, delimiter="\t", header=None, usecols=[0, 1])
    feature.columns = ["a", "b"]
    feature = feature.reindex(columns=list('cab'), fill_value=1)
    label = pd.read_csv(path + file_name, delimiter="\t", header=None, usecols=[2])
    return feature.values, label.values
 
if __name__ == "__main__":
    path = "C://Users//Machenike//Desktop//xzw//"
    feature, label = load_file(path + "test.txt")
    feature_pd, label_pd = load_file_pd(path, "test.txt")
    print(feature)
    print(feature_pd)
    print(label)
    print(label_pd)

測(cè)試結(jié)果:

[[ 1.          1.43481273  4.54377111]
 [ 1.          5.80444603  7.72222239]
 [ 1.          2.89737803  4.84582798]
 [ 1.          3.48896827  9.42538199]
 [ 1.          7.98990181  9.38748992]
 [ 1.          6.07911968  7.81580716]
 [ 1.          8.54988938  9.83106546]
 [ 1.          1.86253147  3.64519173]
 [ 1.          5.09264649  7.16456405]
 [ 1.          0.64048734  2.96504627]
 [ 1.          0.44568267  7.27017831]]
[[ 1.          1.43481273  4.54377111]
 [ 1.          5.80444603  7.72222239]
 [ 1.          2.89737803  4.84582798]
 [ 1.          3.48896827  9.42538199]
 [ 1.          7.98990181  9.38748992]
 [ 1.          6.07911968  7.81580716]
 [ 1.          8.54988938  9.83106546]
 [ 1.          1.86253147  3.64519173]
 [ 1.          5.09264649  7.16456405]
 [ 1.          0.64048734  2.96504627]
 [ 1.          0.44568267  7.27017831]]
[[ 0.]
 [ 0.]
 [ 0.]
 [ 0.]
 [ 0.]
 [ 0.]
 [ 0.]
 [ 0.]
 [ 0.]
 [ 0.]
 [ 0.]]
[[0]
 [0]
 [0]
 [0]
 [0]
 [0]
 [0]
 [0]
 [0]
 [0]
 [0]]

從測(cè)試結(jié)果來(lái)看可知兩種加載數(shù)據(jù)的方法得到的數(shù)據(jù)結(jié)果是一樣的,故兩種方法均適用于加載數(shù)據(jù)。

注意:

此處是以Logistic Regression模型加載數(shù)據(jù)為例,數(shù)據(jù)與數(shù)據(jù)本身或許會(huì)有差異,但加載數(shù)據(jù)的方式都是大同小異的,要靈活變通。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python生成pdf目錄書簽的實(shí)例方法

    Python生成pdf目錄書簽的實(shí)例方法

    在本篇文章里小編給大家整理了關(guān)于Python生成pdf目錄書簽的實(shí)例方法,有需要的朋友們可以學(xué)習(xí)下。
    2020-10-10
  • django 簡(jiǎn)單實(shí)現(xiàn)登錄驗(yàn)證給你

    django 簡(jiǎn)單實(shí)現(xiàn)登錄驗(yàn)證給你

    這篇文章主要介紹了django 簡(jiǎn)單實(shí)現(xiàn)登錄驗(yàn)證給你,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Python的Scrapy框架中的CrawlSpider介紹和使用

    Python的Scrapy框架中的CrawlSpider介紹和使用

    這篇文章主要介紹了Python的Scrapy框架中的CrawlSpider介紹和使用,CrawlSpider其實(shí)是Spider的一個(gè)子類,除了繼承到Spider的特性和功能外,還派生除了其自己獨(dú)有的更加強(qiáng)大的特性和功能,其中最顯著的功能就是"LinkExtractors鏈接提取器",需要的朋友可以參考下
    2023-12-12
  • python?import模塊時(shí)有錯(cuò)誤紅線的原因

    python?import模塊時(shí)有錯(cuò)誤紅線的原因

    這篇文章主要介紹了python?import模塊時(shí)有錯(cuò)誤紅線的原因及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 用python的requests第三方模塊抓取王者榮耀所有英雄的皮膚實(shí)例

    用python的requests第三方模塊抓取王者榮耀所有英雄的皮膚實(shí)例

    下面小編就為大家分享一篇用python的requests第三方模塊抓取王者榮耀所有英雄的皮膚實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨想過(guò)來(lái)看看吧
    2017-12-12
  • Python遍歷文件夾 處理json文件的方法

    Python遍歷文件夾 處理json文件的方法

    今天小編就為大家分享一篇Python遍歷文件夾 處理json文件的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • Python不規(guī)范的日期字符串處理類

    Python不規(guī)范的日期字符串處理類

    這篇文章主要介紹了Python不規(guī)范的日期字符串處理類,可以對(duì)一些非正規(guī)的日期字符串進(jìn)行解析、轉(zhuǎn)換、比較等,需要的朋友可以參考下
    2014-06-06
  • Python小技巧練習(xí)分享

    Python小技巧練習(xí)分享

    這篇文章主要介紹了Python小技巧練習(xí)分享,文章基于python的相關(guān)內(nèi)容展開(kāi)詳細(xì)的python小技巧內(nèi)容,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • Python3 pickle模塊的使用方法詳細(xì)介紹

    Python3 pickle模塊的使用方法詳細(xì)介紹

    pickle提供了一個(gè)簡(jiǎn)單的持久化功能??梢詫?duì)象以文件的形式存放在磁盤上,pickle序列化后的數(shù)據(jù),可讀性差,人一般無(wú)法識(shí)別,本文詳細(xì)介紹了pickle模塊的使用方法
    2021-10-10
  • 新建文件時(shí)Pycharm中自動(dòng)設(shè)置頭部模板信息的方法

    新建文件時(shí)Pycharm中自動(dòng)設(shè)置頭部模板信息的方法

    這篇文章主要介紹了新建文件時(shí)Pycharm中自動(dòng)設(shè)置頭部模板信息的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04

最新評(píng)論