最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)  # 設置偏置項
        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)  # 設置偏置項
        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)文章

  • Windows切換python版本的超快捷方法(推薦!)

    Windows切換python版本的超快捷方法(推薦!)

    這篇文章主要介紹了在Windows中切換Python版本的快捷方法,通過編輯系統(tǒng)變量中的Path變量,可以快速切換到所需的Python版本,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2025-02-02
  • 關(guān)于python的list相關(guān)知識(推薦)

    關(guān)于python的list相關(guān)知識(推薦)

    下面小編就為大家?guī)硪黄P(guān)于python的list相關(guān)知識(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • python下載的庫包存放路徑

    python下載的庫包存放路徑

    在本篇文章里小編給大家整理的是一篇關(guān)于python下載的庫包存放路徑,需要的朋友們可以參考學習下。
    2020-07-07
  • Pycharm配置Anaconda環(huán)境的詳細圖文教程

    Pycharm配置Anaconda環(huán)境的詳細圖文教程

    PyCharm是一款很好用很流行的python編輯器,Anaconda通過管理工具包、開發(fā)環(huán)境、Python版本,大大簡化了你的工作流程,下面這篇文章主要給大家介紹了關(guān)于Windows系統(tǒng)下Pycharm配置Anaconda環(huán)境的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • python如何輸入根號

    python如何輸入根號

    這篇文章主要介紹了python如何輸入根號,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Python內(nèi)存泄漏和內(nèi)存溢出的解決方案

    Python內(nèi)存泄漏和內(nèi)存溢出的解決方案

    這篇文章主要介紹了Python內(nèi)存泄漏和內(nèi)存溢出的解決方案,幫助大家維護后臺進程,感興趣的朋友可以了解下
    2020-09-09
  • Python時間處理模塊time和datetime詳解

    Python時間處理模塊time和datetime詳解

    本文詳細介紹了Python中常用的時間處理模塊time和datetime,time模塊提供多種時間獲取和轉(zhuǎn)換功能,datetime模塊則在time的基礎上增加了日期和時間的組合處理,如datetime.now()獲取當前日期時間,兩個模塊在日常編程中非常有用,尤其是在需要時間日期計算和轉(zhuǎn)換的場景下
    2024-10-10
  • python操作ini類型配置文件的實例教程

    python操作ini類型配置文件的實例教程

    這篇文章主要給大家介紹了關(guān)于python操作ini類型配置文件的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • Python Traceback異常代碼排錯利器使用指南

    Python Traceback異常代碼排錯利器使用指南

    這篇文章主要為大家介紹了Python Traceback異常代碼排錯利器使用指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • Django 聚合查詢及使用步驟

    Django 聚合查詢及使用步驟

    本文詳細介紹了Django中聚合查詢的使用方法和步驟,包括aggregate()和annotate()兩種聚合查詢方式,以及F()和Q()查詢的使用場景,文中通過具體代碼示例解釋了如何在Django項目中實現(xiàn)數(shù)據(jù)聚合,感興趣的朋友跟隨小編一起看看吧
    2024-09-09

最新評論

平谷区| 高雄县| 肥东县| 天祝| 望城县| 通州市| 高雄市| 张家川| 安义县| 瓦房店市| 盐源县| 利津县| 纳雍县| 巴林右旗| 湟源县| 万年县| 新兴县| 乌审旗| 日土县| 彩票| 丰原市| 安阳县| 黄陵县| 叙永县| 新安县| 杭锦旗| 广汉市| 新河县| 潞城市| 石嘴山市| 亚东县| 清远市| 安庆市| 自治县| 信阳市| 博乐市| 蒙山县| 元江| 谢通门县| 汽车| 闽清县|