成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

數(shù)據(jù)科學(xué)家在使用Python時(shí)常犯的九個(gè)錯(cuò)誤

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

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

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

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

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

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

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

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

2、過(guò)度使用Jupyter Notebooks

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

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

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

3、使用絕對(duì)而不是相對(duì)路徑

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

import pandas as pd
import numpy as np
import os
#### 錯(cuò)誤的方式 #####
excel_path1 = "C:\\Users\\abdelilah\\Desktop\\mysheet1.xlsx"
excel_path2 = "C:\\Users\\abdelilah\\Desktop\\mysheet2.xlsx"
mydf1 = pd.read_excel(excel_path1)
mydf2 = pd.read_excel(excel_path2)

#### 正確的方式 ####
DATA_DIR = "data"
#將要讀取的文件復(fù)制到data目錄
crime06_filename = "CrimeOneYearofData_2006.xlsx"
crime07_filename = "CrimeOneYearofData_2007.xlsx"
crime06_df = pd.read_excel(os.path.join(DATA_DIR, crime06_filename))
crime07_df = pd.read_excel(os.path.join(DATA_DIR, crime07_filename))

4、不處理警告

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

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

我遇到的最常見(jiàn)的警告是 Pandas 的“SettingwithCopyWarning”和“DeprecationWarning”。

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

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

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

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

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

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

import pandas as pd
import os

DATA_PATH = "data"
filename_list = os.listdir(DATA_PATH)

#### 不好的方法 #####
csv_list = []
for fileaname in filename_list:
csv_list.append(pd.read_csv(os.path.join(DATA_PATH, filename)))

#### 建議 ####
csv_list = [pd.read_csv(os.path.join(DATA_PATH, filename)) for filename in filename_list]
list comprehensions
csv_list = [pd.read_csv(os.path.join(DATA_PATH,
filename)) for filename in filename_list if
filename.endswith(".csv")]

6、不使用類型注釋

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

def mystery_combine(a, b, times):
return (a + b) * times

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

def mystery_combine(a: str, b: str, times: int) -> str:
return (a + b) * times

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

需要說(shuō)明的是:python在3.5版本的時(shí)候引入了類型注釋,python并不會(huì)在執(zhí)行時(shí)檢查類型注釋,他只是為IDE提供了一個(gè)方便靜態(tài)類型檢查工具,對(duì)動(dòng)態(tài)語(yǔ)言做靜態(tài)類型檢查,來(lái)避免一些潛在的錯(cuò)誤。

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

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

有一個(gè)技巧可以讓這種方式邊的簡(jiǎn)單,將表達(dá)式放入括號(hào)中,則可以對(duì)表達(dá)式的每個(gè)組件使用一行。

var_list = ["clicks", "time_spent"]
var_list_Q = [varname + "_Q" for varname in var_list]

#不可讀的方法
df_Q = df.groupby("id").rolling(window=3, min_periods=1, on="yearmonth[var_list].mean().reset_index().rename(columns=dict(zip(var_list, var_list_Q)))

#可讀性強(qiáng)的方法
df_Q = (
df
.groupby("id")
.rolling(window=3, min_periods=1, on="yearmonth")[var_list]
.mean()
.reset_index()
.rename(columns=dict(zip(var_list, var_list_Q))))

8、不遵守 PEP 約定

剛開(kāi)始使用 Python 進(jìn)行編程時(shí),代碼可能是簡(jiǎn)陋并且不可讀的,這是因?yàn)槲覀儾](méi)有自己的設(shè)計(jì)規(guī)則來(lái)讓我的代碼看起來(lái)更好。如果我們自己來(lái)設(shè)計(jì)這種規(guī)則是費(fèi)事費(fèi)力的并且這種規(guī)則需要很多的實(shí)踐,好在Python官方有已經(jīng)指定好的規(guī)則:PEP,它是 Python 的官方樣式指南。

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

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

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

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

責(zé)任編輯:華軒 來(lái)源: DeepHub IMBA
相關(guān)推薦

2019-04-09 09:00:01

數(shù)據(jù)科學(xué)代碼編寫(xiě)

2017-08-04 15:53:10

大數(shù)據(jù)真?zhèn)螖?shù)據(jù)科學(xué)家

2020-03-20 14:40:48

數(shù)據(jù)科學(xué)Python學(xué)習(xí)

2018-08-10 08:35:49

2012-12-06 15:36:55

CIO

2012-12-26 10:51:20

數(shù)據(jù)科學(xué)家

2018-12-24 08:37:44

數(shù)據(jù)科學(xué)家數(shù)據(jù)模型

2018-02-28 15:03:03

數(shù)據(jù)科學(xué)家數(shù)據(jù)分析職業(yè)

2016-03-10 13:56:42

數(shù)據(jù)科學(xué)數(shù)據(jù)科學(xué)家數(shù)據(jù)分析

2015-08-25 13:20:29

數(shù)據(jù)科學(xué)

2016-04-11 14:15:06

數(shù)據(jù)科學(xué)數(shù)據(jù)挖掘工具

2012-06-12 09:33:59

2018-10-16 14:37:34

數(shù)據(jù)科學(xué)家數(shù)據(jù)分析數(shù)據(jù)科學(xué)

2018-10-18 09:00:00

機(jī)器學(xué)習(xí)機(jī)器學(xué)習(xí)算法數(shù)據(jù)科學(xué)家

2014-04-22 09:33:49

云計(jì)算云安全云遷移

2015-07-23 10:49:06

Python工具數(shù)據(jù)科學(xué)

2019-07-05 10:29:17

大數(shù)據(jù)數(shù)據(jù)科學(xué)家

2016-05-11 10:36:16

數(shù)據(jù)科學(xué)家數(shù)據(jù)科學(xué)大數(shù)據(jù)

2018-03-01 15:34:20

數(shù)據(jù)科學(xué)面試招聘

2017-01-23 16:00:25

數(shù)據(jù)科學(xué)家大數(shù)據(jù)數(shù)學(xué)家
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 黄色大片免费观看 | 国产亚洲精品久久久久动 | 亚洲一卡二卡 | 99久久久国产精品免费消防器 | 成人免费大片黄在线播放 | 人碰人操 | 国产精品日日摸夜夜添夜夜av | 国产精品视频播放 | 在线免费看黄 | 欧美日韩精品中文字幕 | 日韩在线免费视频 | 成人精品鲁一区一区二区 | 日韩有码一区 | 国产精品视频久久久 | 亚洲电影一级片 | 久久高清亚洲 | 国产一区二区三区视频 | 欧美日一区二区 | 9999在线视频 | 北条麻妃99精品青青久久 | 国产一区免费 | 中文字幕第5页 | 色综合天天天天做夜夜夜夜做 | 一区二区在线不卡 | 欧美日韩视频在线播放 | 国产精品久久久久婷婷二区次 | 国产精品久久久久久模特 | 中文字幕在线观看日韩 | 中文字幕一区在线观看视频 | www.99精品 | 久久这里只有精品首页 | 日韩免费中文字幕 | 天天综合久久 | 91精品国产一区二区三区动漫 | 国产精品毛片久久久久久 | 欧美日韩专区 | 91精品国产91久久久久久最新 | 夜夜操av| 日日干夜夜操 | 精品网站999 | 亚洲 欧美 日韩 精品 |