91aaa在线国内观看,亚洲AV午夜福利精品一区二区,久久偷拍人视频,久久播这里有免费视播

<strong id="fvuar"></strong>

  • <sub id="fvuar"><dl id="fvuar"><em id="fvuar"></em></dl></sub>

    1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

      手機站
      千鋒教育

      千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

      千鋒教育

      掃一掃進(jìn)入千鋒手機站

      領(lǐng)取全套視頻
      千鋒教育

      關(guān)注千鋒學(xué)習(xí)站小程序
      隨時隨地免費學(xué)習(xí)課程

      當(dāng)前位置:首頁  >  技術(shù)干貨  > 數(shù)據(jù)科學(xué)使用Python時常見的9個錯誤

      數(shù)據(jù)科學(xué)使用Python時常見的9個錯誤

      來源:千鋒教育
      發(fā)布人:syq
      時間: 2022-10-27 11:42:12 1666842132

        通過應(yīng)用軟件工程最佳實踐,可以交付質(zhì)量更好數(shù)據(jù)科學(xué)的項目。更好的質(zhì)量可能是更少的錯誤、可靠的結(jié)果和更高的編碼效率。

      數(shù)據(jù)科學(xué)使用Python

        最佳實踐都是從錯誤中總結(jié)出來的,所以這里我們總結(jié)了一些遇到的最常見的錯誤,并提供了如何最好地解決這些錯誤的方法、想法和資源。

        1、不使用虛擬環(huán)境

        這本身不是編碼問題,但我仍然認(rèn)為每種類型的項目進(jìn)行環(huán)境的隔離是一個非常好的實踐。

        為什么要為每個項目使用專用環(huán)境呢?

        第一個原因是Python本身包管理的問題,我們想盡量減少包和版本之間的沖突。

        另外一個原因是我們代碼和依賴可以方便的部署到任意的位置

        使用虛擬環(huán)境可以從Anaconda 或 Pipenv 開始。如果想更深入那么 Docker 是首選。

        2、過度使用Jupyter Notebooks

        Notebooks 非常適合用于教育目的和做一些快速而復(fù)雜的分析工作,但它不能作為一個好的 IDE。

        一個好的 IDE 是應(yīng)對數(shù)據(jù)科學(xué)任務(wù)時的真正武器,可以極大地提高您的工作效率。

        Notebooks 很適合做實驗,而且可以輕松地將結(jié)果展示給其他人。但是它很容易出錯,當(dāng)涉及到執(zhí)行長期、協(xié)作和可部署的項目時,最好還是使用IDE,例如 VScode、Pycharm、Spyder 等。

        3、使用絕對而不是相對路徑

        絕對路徑的最大問題是無法進(jìn)行方便部署,解決這個問題的主要方法是將工作目錄設(shè)置為項目根目錄,并且不要再項目中包含項目目錄外的文件,并且在代碼中的所有路徑均使用相對路徑。

      1

        4、不處理警告

        當(dāng)我們的代碼能夠運行但產(chǎn)生奇怪的警告消息,我們很高興終于讓代碼運行并收到了有意義的輸出。但是我們需要處理這些警告嗎?

        首先,警告本身并不是錯誤,但它們是會引起我們對潛在錯誤或問題的提示。當(dāng)你的代碼中能夠運行成功但可能不是它的預(yù)期方式時,警告就會出現(xiàn)。

        我遇到的最常見的警告是 Pandas 的“SettingwithCopyWarning”和“DeprecationWarning”。

        SettingwithCopyWarning最大的原因是 Pandas 檢測到鏈?zhǔn)劫x值(Chained Assignment)時發(fā)生的警告,我們應(yīng)該避免對鏈?zhǔn)剿饕慕Y(jié)果賦值,因為這個操作有可能會報warning也有可能不會報。

        DeprecationWarning 通常指出 Pandas 棄用了某些功能,并且您的代碼在使用更高版本時會中斷。

        這里的建議并不是要處理所有的警告,但是一定要對所有警告產(chǎn)生的原因有所了解,要知道在特定項目中那些警告式可以忽略的,那些警告的出現(xiàn)對結(jié)果會有影響,應(yīng)當(dāng)避免。

        5、沒有使用(很少使用)列表推導(dǎo)式

        列表推導(dǎo)式是 python 的一個非常強大的特性。許多 for 循環(huán)可以用更易讀、更 Python 且速度更快的列表推導(dǎo)來代替。

        可以在下面看到一個示例代碼,該代碼旨在讀取目錄中的 CSV 文件??梢钥吹?,在使用列表推導(dǎo)時添很容易維護(hù)。

      2

        6、不使用類型注釋

        類型注釋(或類型提示)是為變量分配類型的方法。在IDE進(jìn)行智能感知的提示時可以為我們提供指示變量/參數(shù)的類型。這不僅可以提高我們開發(fā)的速度,也可以對我們閱讀代碼有很大的幫助。

      3

        如果這么寫,我們根本不知道a,b和times的類型

      4

        但是加上了類型注釋,我們就知道a和b是字符串times是整數(shù)

        需要說明的是:python在3.5版本的時候引入了類型注釋,python并不會在執(zhí)行時檢查類型注釋,他只是為IDE提供了一個方便靜態(tài)類型檢查工具,對動態(tài)語言做靜態(tài)類型檢查,來避免一些潛在的錯誤。

        7、pandas代碼不規(guī)范

        方法鏈?zhǔn)?pandas 的一個很棒的特性,但是如果在一行中包含了很多的操作,代碼可能會變得不可讀。

        有一個技巧可以讓這種方式邊的簡單,將表達(dá)式放入括號中,則可以對表達(dá)式的每個組件使用一行。

      5

        8、不遵守 PEP 約定

        剛開始使用 Python 進(jìn)行編程時,代碼可能是簡陋并且不可讀的,這是因為我們并沒有自己的設(shè)計規(guī)則來讓我的代碼看起來更好。如果我們自己來設(shè)計這種規(guī)則是費事費力的并且這種規(guī)則需要很多的實踐,好在Python官方有已經(jīng)指定好的規(guī)則:PEP,它是 Python 的官方樣式指南。

        雖然PEP的規(guī)則很多并且很繁瑣,我們可以忽略了一些 PEP 規(guī)則,但可以在 90% 的代碼中使用了它們。

        9、你不使用編碼輔助工具

        您想在編碼方面大幅提高生產(chǎn)力嗎?請開始使用編碼輔助工具,它通過巧妙的自動完成、打開文檔和提供改進(jìn)代碼的建議來提供幫助。

        pylance, Kite ,tabnine,copilot都是非常好的選擇。

      tags:
      聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
      10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
      請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
      免費領(lǐng)取
      今日已有369人領(lǐng)取成功
      劉同學(xué) 138****2860 剛剛成功領(lǐng)取
      王同學(xué) 131****2015 剛剛成功領(lǐng)取
      張同學(xué) 133****4652 剛剛成功領(lǐng)取
      李同學(xué) 135****8607 剛剛成功領(lǐng)取
      楊同學(xué) 132****5667 剛剛成功領(lǐng)取
      岳同學(xué) 134****6652 剛剛成功領(lǐng)取
      梁同學(xué) 157****2950 剛剛成功領(lǐng)取
      劉同學(xué) 189****1015 剛剛成功領(lǐng)取
      張同學(xué) 155****4678 剛剛成功領(lǐng)取
      鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
      董同學(xué) 138****2867 剛剛成功領(lǐng)取
      周同學(xué) 136****3602 剛剛成功領(lǐng)取
      相關(guān)推薦HOT
      為什么SpringBoot的 jar 可以直接運行?

      一、JAR文件的結(jié)構(gòu)與執(zhí)行方式Spring Boot的JAR包是Java Archive的縮寫,它是一種壓縮文件格式,可以將Java項目的類文件、資源文件以及依賴庫等...詳情>>

      2023-10-14 23:01:49
      站群服務(wù)器是什么?

      站群服務(wù)器的含義與用途站群服務(wù)器主要用于支持站群,即由一組相互鏈接的網(wǎng)站組成的群體。這些網(wǎng)站通常由同一組織或個人擁有,并且經(jīng)常會互相鏈...詳情>>

      2023-10-14 22:46:12
      自編碼器是什么?

      一、自編碼器原理自編碼器的設(shè)計靈感源于神經(jīng)科學(xué)中關(guān)于感知系統(tǒng)的認(rèn)知原理,它的核心思想是將輸入數(shù)據(jù)經(jīng)過編碼過程,形成一個隱藏層的特征表示...詳情>>

      2023-10-14 22:41:10
      什么是云網(wǎng)融合?

      一、云網(wǎng)融合的定義云網(wǎng)融合是指將云計算與網(wǎng)絡(luò)技術(shù)相結(jié)合,實現(xiàn)資源的共享、業(yè)務(wù)的協(xié)同,將網(wǎng)絡(luò)與云端服務(wù)深度融合,提供更靈活、高效、安全的...詳情>>

      2023-10-14 22:31:47
      什么是setnx、Redlock、Redisson?

      一、setnxsetnx是Redis中的一個命令,用于將鍵值對(key-value)設(shè)置到Redis數(shù)據(jù)庫中。其中,setnx表示”Set if Not Exists”,即當(dāng)...詳情>>

      2023-10-14 22:22:53