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

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

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

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

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

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

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

def load_file(file_name):
    '''
    利用open()函數(shù)加載文件
    :param file_name: 文件名
    :return: 特征矩陣、標簽矩陣
    '''
    f = open(file_name)  # 打開訓練數(shù)據(jù)集所在的文檔
    feature = []  # 存放特征的列表
    label = []  #存放標簽的列表
    for row in f.readlines():
        f_tmp = []  # 存放特征的中間列表
        l_tmp = []  # 存放標簽的中間列表
        number = row.strip().split("\t")  # 按照\t分割每行的元素,得到每行特征和標簽
        f_tmp.append(1)  # 設(shè)置偏置項
        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庫中的read_csv()方法進行加載

def load_file_pd(path, file_name):
    '''
    利用pandas庫加載文件
    :param path: 文件路徑
    :param file_name: 文件名稱
    :return: 特征矩陣、標簽矩陣
    '''
    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

三、示例

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

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

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

'''
兩種方式加載文件
'''
 
import pandas as pd
import numpy as np
 
def load_file(file_name):
    '''
    利用open()函數(shù)加載文件
    :param file_name: 文件名
    :return: 特征矩陣、標簽矩陣
    '''
    f = open(file_name)  # 打開訓練數(shù)據(jù)集所在的文檔
    feature = []  # 存放特征的列表
    label = []  #存放標簽的列表
    for row in f.readlines():
        f_tmp = []  # 存放特征的中間列表
        l_tmp = []  # 存放標簽的中間列表
        number = row.strip().split("\t")  # 按照\t分割每行的元素,得到每行特征和標簽
        f_tmp.append(1)  # 設(shè)置偏置項
        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庫加載文件
    :param path: 文件路徑
    :param file_name: 文件名稱
    :return: 特征矩陣、標簽矩陣
    '''
    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)

測試結(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]]

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

注意:

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

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

相關(guān)文章

  • Python生成pdf目錄書簽的實例方法

    Python生成pdf目錄書簽的實例方法

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

    django 簡單實現(xiàn)登錄驗證給你

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

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

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

    python?import模塊時有錯誤紅線的原因

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

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

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

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

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

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

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

    Python小技巧練習分享

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

    Python3 pickle模塊的使用方法詳細介紹

    pickle提供了一個簡單的持久化功能??梢詫ο笠晕募男问酱娣旁诖疟P上,pickle序列化后的數(shù)據(jù),可讀性差,人一般無法識別,本文詳細介紹了pickle模塊的使用方法
    2021-10-10
  • 新建文件時Pycharm中自動設(shè)置頭部模板信息的方法

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

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

最新評論