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

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

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

一、實(shí)驗(yàn)?zāi)康?/h2>

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

二、實(shí)驗(yàn)環(huán)境

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

三、實(shí)驗(yàn)步驟

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

import tensorflow as tf
import os

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

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ù),同時(shí)指定每列的默認(rèn)值。
  • 應(yīng)用解析和批處理:使用 map 方法將解析函數(shù)應(yīng)用到每個(gè)數(shù)據(jù)行,再使用 batch 方法將數(shù)據(jù)分成指定大小的批次。

3. 主程序邏輯

if __name__ == "__main__":
    # 指定具體文件路徑
    csv_path = r"C:\Users\30597\Desktop\sye\people.csv"
 
    # 驗(yàn)證文件存在性
    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)
  • 指定文件路徑并驗(yàn)證存在性:使用 os.path.exists 函數(shù)檢查 CSV 文件是否存在,若不存在則拋出 FileNotFoundError 異常。
  • 創(chuàng)建數(shù)據(jù)集:調(diào)用 csv_reader 函數(shù)創(chuàng)建數(shù)據(jù)集。
  • 迭代數(shù)據(jù)批次:遍歷數(shù)據(jù)集的每個(gè)批次,將字節(jié)字符串解碼為普通字符串,并打印每個(gè)批次的姓名、年齡和職業(yè)信息。

四、實(shí)驗(yàn)結(jié)果

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

五、實(shí)驗(yàn)總結(jié)與反思

優(yōu)點(diǎn)

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

不足與改進(jìn)方向

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

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

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

相關(guān)文章

  • pymongo如何通過oplog獲取數(shù)據(jù)(mongodb)

    pymongo如何通過oplog獲取數(shù)據(jù)(mongodb)

    使用MongoDB的oplog(操作日志)進(jìn)行數(shù)據(jù)同步是高級(jí)的用法,主要用于復(fù)制和故障恢復(fù),這篇文章主要介紹了pymongo通過oplog獲取數(shù)據(jù)(mongodb),需要的朋友可以參考下
    2023-09-09
  • 一文詳解Python的pyc文件

    一文詳解Python的pyc文件

    Python?程序在執(zhí)行過程中,會(huì)產(chǎn)生一些中間文件,其中最常見的就是?pyc?文件,pyc?文件是?Python?的二進(jìn)制字節(jié)碼文件,本文將通過簡(jiǎn)潔的語(yǔ)言、實(shí)際的代碼和案例,通俗易懂地解釋?pyc?文件的相關(guān)知識(shí),感興趣的小伙伴跟著小編一起來(lái)看看吧
    2024-12-12
  • 淘寶秒殺python腳本 掃碼登錄版

    淘寶秒殺python腳本 掃碼登錄版

    這篇文章主要為大家詳細(xì)介紹了淘寶秒殺python腳本,掃碼登錄版,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • Python自定義函數(shù)計(jì)算給定日期是該年第幾天的方法示例

    Python自定義函數(shù)計(jì)算給定日期是該年第幾天的方法示例

    這篇文章主要介紹了Python自定義函數(shù)計(jì)算給定日期是該年第幾天的方法,結(jié)合具體實(shí)例形式分析了Python日期時(shí)間計(jì)算相關(guān)操作技巧,需要的朋友可以參考下
    2019-05-05
  • pycharm不在cmd中運(yùn)行卻在python控制臺(tái)運(yùn)行問題解決

    pycharm不在cmd中運(yùn)行卻在python控制臺(tái)運(yùn)行問題解決

    這篇文章主要介紹了pycharm不在cmd中運(yùn)行卻在python控制臺(tái)運(yùn)行問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • 解決Python串口接收無(wú)標(biāo)識(shí)不定長(zhǎng)數(shù)據(jù)

    解決Python串口接收無(wú)標(biāo)識(shí)不定長(zhǎng)數(shù)據(jù)

    這篇文章主要介紹了解決Python串口接收無(wú)標(biāo)識(shí)不定長(zhǎng)數(shù)據(jù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 如何利用Python解析超大的json數(shù)據(jù)(GB級(jí)別)

    如何利用Python解析超大的json數(shù)據(jù)(GB級(jí)別)

    果不想從頭開始創(chuàng)建數(shù)據(jù)格式來(lái)存儲(chǔ)數(shù)據(jù),JSON是一個(gè)不錯(cuò)的選擇,下面這篇文章主要給大家介紹了關(guān)于如何利用Python解析超大的json數(shù)據(jù)(GB級(jí)別)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • Python關(guān)鍵字及可變參數(shù)*args,**kw原理解析

    Python關(guān)鍵字及可變參數(shù)*args,**kw原理解析

    這篇文章主要介紹了Python關(guān)鍵字及可變參數(shù)*args,**kw原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • numpy矩陣數(shù)值太多不能全部顯示的解決

    numpy矩陣數(shù)值太多不能全部顯示的解決

    這篇文章主要介紹了numpy矩陣數(shù)值太多不能全部顯示的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2020-05-05
  • 基于opencv和pillow實(shí)現(xiàn)人臉識(shí)別系統(tǒng)(附demo)

    基于opencv和pillow實(shí)現(xiàn)人臉識(shí)別系統(tǒng)(附demo)

    人臉識(shí)別就是一個(gè)程序能識(shí)別給定圖像或視頻中的人臉,本文主要介紹了opencv和pillow實(shí)現(xiàn)人臉識(shí)別系統(tǒng),本文不涉及分類器、訓(xùn)練識(shí)別器等算法原理,感興趣的可以了解一下
    2021-11-11

最新評(píng)論