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

python使用TensorFlow讀取和批處理CSV文件

 更新時間:2025年03月10日 10:44:18   作者:潛意識Java  
本文旨在給大家使用 TensorFlow 庫讀取 CSV 文件,并將其數(shù)據(jù)以批次的形式進行處理和展示,通過該實驗,我們希望掌握 TensorFlow 中 tf.data.TextLineDataset 的使用方法,以及如何解析 CSV 數(shù)據(jù)并進行批量處理,需要的朋友可以參考下

一、實驗?zāi)康?/h2>

本次實驗旨在使用 TensorFlow 庫讀取 CSV 文件,并將其數(shù)據(jù)以批次的形式進行處理和展示。通過該實驗,我們希望掌握 TensorFlow 中 tf.data.TextLineDataset 的使用方法,以及如何解析 CSV 數(shù)據(jù)并進行批量處理。

二、實驗環(huán)境

  • 編程語言:Python
  • 主要庫:TensorFlow、os
  • 操作系統(tǒng):Windows
  • 實驗數(shù)據(jù):位于 C:\Users\30597\Desktop\sye\people.csv 的 CSV 文件,包含 Name、Age 和 Occupation 三列數(shù)據(jù)。

三、實驗步驟

1. 導(dǎo)入必要的庫

import tensorflow as tf
import os

導(dǎo)入 tensorflow 庫用于數(shù)據(jù)處理,os 庫用于文件路徑驗證。

2. 定義 CSV 讀取函數(shù)

def csv_reader(file_path, batch_size=2):
    # 1. 創(chuàng)建Dataset并跳過表頭
    dataset = tf.data.TextLineDataset(file_path).skip(1)
 
    # 2. 定義CSV解析函數(shù)
    def parse_line(line):
        record_defaults = [
            tf.constant(["Unknown"], tf.string),  # Name列
            tf.constant([0], tf.int32),  # Age列
            tf.constant(["Unknown"], tf.string)  # Occupation列
        ]
        fields = tf.io.decode_csv(line, record_defaults)
        return fields
 
    # 3. 應(yīng)用解析和批處理
    dataset = dataset.map(parse_line)
    dataset = dataset.batch(batch_size, drop_remainder=False)
    return dataset
  • 創(chuàng)建 Dataset 并跳過表頭:使用 tf.data.TextLineDataset 讀取 CSV 文件的每一行,并通過 skip(1) 跳過表頭。
  • 定義 CSV 解析函數(shù):parse_line 函數(shù)使用 tf.io.decode_csv 解析每一行數(shù)據(jù),同時指定每列的默認值。
  • 應(yīng)用解析和批處理:使用 map 方法將解析函數(shù)應(yīng)用到每個數(shù)據(jù)行,再使用 batch 方法將數(shù)據(jù)分成指定大小的批次。

3. 主程序邏輯

if __name__ == "__main__":
    # 指定具體文件路徑
    csv_path = r"C:\Users\30597\Desktop\sye\people.csv"
 
    # 驗證文件存在性
    if not os.path.exists(csv_path):
        raise FileNotFoundError(f"CSV文件未找到:{csv_path}")
 
    # 創(chuàng)建數(shù)據(jù)集
    dataset = csv_reader(csv_path, batch_size=2)
 
    # 迭代數(shù)據(jù)批次
    for batch_num, (names, ages, occupations) in enumerate(dataset):
        print(f"\n批次 {batch_num + 1}:")
 
        # 將字節(jié)字符串解碼為普通字符串
        names_str = [name.decode('utf-8') for name in names.numpy()]
        occupations_str = [occ.decode('utf-8') for occ in occupations.numpy()]
 
        print("姓名:", names_str)
        print("年齡:", ages.numpy().tolist())
        print("職業(yè):", occupations_str)
  • 指定文件路徑并驗證存在性:使用 os.path.exists 函數(shù)檢查 CSV 文件是否存在,若不存在則拋出 FileNotFoundError 異常。
  • 創(chuàng)建數(shù)據(jù)集:調(diào)用 csv_reader 函數(shù)創(chuàng)建數(shù)據(jù)集。
  • 迭代數(shù)據(jù)批次:遍歷數(shù)據(jù)集的每個批次,將字節(jié)字符串解碼為普通字符串,并打印每個批次的姓名、年齡和職業(yè)信息。

四、實驗結(jié)果

實驗成功讀取了指定的 CSV 文件,并將數(shù)據(jù)按批次處理和展示。每個批次包含兩條記錄,分別顯示了姓名、年齡和職業(yè)信息。若 CSV 文件中存在缺失值,將使用默認值進行填充。

五、實驗總結(jié)與反思

優(yōu)點

  • 使用 TensorFlow 的 tf.data 模塊:該模塊提供了高效的數(shù)據(jù)處理和迭代功能,能夠方便地處理大規(guī)模數(shù)據(jù)集。
  • 數(shù)據(jù)解析和批處理:通過定義解析函數(shù)和使用 map、batch 方法,實現(xiàn)了數(shù)據(jù)的自動解析和批量處理,提高了代碼的可讀性和可維護性。
  • 文件路徑驗證:在讀取文件前進行路徑驗證,避免了因文件不存在而導(dǎo)致的運行時錯誤。

不足與改進方向

  • 錯誤處理:當(dāng)前代碼僅處理了文件不存在的情況,對于 CSV 文件格式錯誤、數(shù)據(jù)類型不匹配等異常情況未進行處理??梢蕴砑痈嗟漠惓L幚磉壿嫞岣叽a的健壯性。
  • 代碼可擴展性:代碼中硬編碼了 CSV 文件的列數(shù)和默認值,若 CSV 文件的結(jié)構(gòu)發(fā)生變化,需要手動修改代碼??梢钥紤]將列信息和默認值作為參數(shù)傳遞給 csv_reader 函數(shù),提高代碼的可擴展性。
  • 性能優(yōu)化:對于大規(guī)模數(shù)據(jù)集,當(dāng)前的批處理方式可能會導(dǎo)致內(nèi)存占用過高。可以考慮使用 prefetch 方法進行數(shù)據(jù)預(yù)取,提高數(shù)據(jù)處理的性能。

總體而言,本實驗通過使用 TensorFlow 成功實現(xiàn)了 CSV 文件的讀取和批處理,為后續(xù)的數(shù)據(jù)處理和分析奠定了基礎(chǔ)。

以上就是python使用TensorFlow讀取和批處理CSV文件的詳細內(nèi)容,更多關(guān)于python TensorFlow讀取CSV的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用Python操作MySQL的小技巧

    使用Python操作MySQL的小技巧

    這篇文章主要介紹了使用Python操作MySQL的小技巧,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-09-09
  • python無法引用另一個文件夾的py文件問題及解決

    python無法引用另一個文件夾的py文件問題及解決

    這篇文章主要介紹了python無法引用另一個文件夾的py文件問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 基于numpy實現(xiàn)邏輯回歸

    基于numpy實現(xiàn)邏輯回歸

    這篇文章主要為大家詳細介紹了基于numpy實現(xiàn)邏輯回歸,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • Python使用gluon/mxnet模塊實現(xiàn)的mnist手寫數(shù)字識別功能完整示例

    Python使用gluon/mxnet模塊實現(xiàn)的mnist手寫數(shù)字識別功能完整示例

    這篇文章主要介紹了Python使用gluon/mxnet模塊實現(xiàn)的mnist手寫數(shù)字識別功能,結(jié)合完整實例形式分析了Python調(diào)用gluon/mxnet模塊識別手寫字的具體實現(xiàn)技巧,需要的朋友可以參考下
    2019-12-12
  • Python文件操作基礎(chǔ)及異常處理

    Python文件操作基礎(chǔ)及異常處理

    這篇文章主要介紹了文件操作的基本方法,包括如何打開和關(guān)閉文件、使用with語句管理文件、讀取和寫入文件內(nèi)容、處理文件異常、進行二進制文件操作以及文件路徑的說明,,需要的朋友可以參考下
    2025-03-03
  • python中session的使用案例詳解

    python中session的使用案例詳解

    這篇文章主要介紹了python?session使用,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • python在TXT文件中按照某一字符串取出該字符串所在的行方法

    python在TXT文件中按照某一字符串取出該字符串所在的行方法

    今天小編就為大家分享一篇python在TXT文件中按照某一字符串取出該字符串所在的行方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python中readline判斷文件讀取結(jié)束的方法

    python中readline判斷文件讀取結(jié)束的方法

    這篇文章主要介紹了python中readline判斷文件讀取結(jié)束的方法,實例形式詳細分析了Python中readline的用法,需要的朋友可以參考下
    2014-11-11
  • Python中Requests POST請求解讀

    Python中Requests POST請求解讀

    POST請求是HTTP協(xié)議中一種用于提交數(shù)據(jù)的方法,與GET請求獲取數(shù)據(jù)不同,POST常用于提交表單數(shù)據(jù)和上傳文件,本文介紹了如何使用Python的Requests包發(fā)送POST請求,包括基本的表單數(shù)據(jù)提交、發(fā)送JSON格式數(shù)據(jù),以及如何處理響應(yīng)狀態(tài)碼和錯誤
    2024-11-11
  • 詳解Pycharm第三方庫的安裝及使用方法

    詳解Pycharm第三方庫的安裝及使用方法

    這篇文章主要介紹了詳解Pycharm第三方庫的安裝及使用方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12

最新評論

华蓥市| 彩票| 社会| 上思县| 湾仔区| 康保县| 宜阳县| 嘉禾县| 潢川县| 上林县| 仙桃市| 德江县| 潮安县| 班戈县| 彭水| 乐亭县| 扎兰屯市| 固镇县| 蚌埠市| 石家庄市| 扶余县| 侯马市| 镇原县| 卓尼县| 思南县| 宿松县| 渭源县| 巴东县| 阳曲县| 贵港市| 平和县| 喀喇沁旗| 栾城县| 邛崃市| 安图县| 简阳市| 锡林浩特市| 财经| 嘉祥县| 安西县| 方城县|