中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

強大的Python數據科學技巧有哪些

發布時間:2021-11-25 13:54:08 來源:億速云 閱讀:141 作者:iii 欄目:大數據

這篇文章主要介紹“強大的Python數據科學技巧有哪些”,在日常操作中,相信很多人在強大的Python數據科學技巧有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”強大的Python數據科學技巧有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

1. zip:在Python中合并多個列表

通常我們最終會寫出復雜的for循環以將多個列表組合在一起。聽起來很熟悉?那么你會喜歡zip函數的。這個zip函數的目的是“創建一個迭代器,從每個iterable中聚合元素”。

讓我們通過一個簡單的示例來了解如何使用zip函數并組合多個列表:

強大的Python數據科學技巧有哪些

看到合并多個列表有多容易了嗎?

2. gmplot:在Google Maps的數據集中繪制GPS坐標

我喜歡使用Google Maps數據。想想看,它是最豐富的數據應用程序之一。這就是為什么我決定從這個Python技巧開始的原因。

當我們想查看兩個變量之間的關系時,使用散點圖是非常好的。但是如果變量是一個位置的經緯度坐標,你會使用它們嗎?可能不會。最好把這些點標在真實的地圖上,這樣我們就可以很容易地看到并解決某個特定的問題(比如優化路線)。

gmplot提供了一個令人驚嘆的界面,可以生成HTML和JavaScript,將我們想要的所有數據呈現在Google Maps之上。讓我們來看一個如何使用gmplot的例子。

安裝gmplot

!pip3 install gmplot

在Google地圖上繪制位置坐標

讓我們導入庫并讀取數據:

import pandas as pd
import gmplot
data = pd.read_csv('3D_spatial_network.csv')
data.head()

強大的Python數據科學技巧有哪些

# latitude and longitude list 
latitude_list = data['LATITUDE'] 
longitude_list = data['LONGITUDE'] 

# center co-ordinates of the map 
gmap = gmplot.GoogleMapPlotter( 56.730876,9.349849,9)

# plot the co-ordinates on the google map 
gmap.scatter( latitude_list, longitude_list, '# FF0000', size = 40, marker = True) 

# the following code will create the html file view that in your web browser 
gmap.heatmap(latitude_list, longitude_list) 

gmap.draw( "mymap.html" )

上面的代碼將生成HTML文件,你可以看到Google地圖上繪制了緯度和經度坐標。熱圖以紅色顯示具有高密度點的區域。很酷吧?

3. category_encoders:使用15種不同的編碼方案對分類變量進行編碼

我們在早期數據科學數據集中面臨的最大障礙之一 —— 我們應該如何處理分類變量?我們的機器眨眼間就可以處理數字,但是處理類別卻是一個完全不同的問題。

一些機器學習算法可以自己處理分類變量。但是我們需要將它們轉換為數值變量,為此,category_encoders是一個了不起的庫,提供了15種不同的編碼方案。

讓我們看看如何利用這個庫。

安裝 category-encoders

!pip3 install category-encoders

將分類數據轉換為數值數據

import pandas as pd 
import category_encoders as ce 

# create a Dataframe 
data = pd.DataFrame({ 'gender' : ['Male', 'Female', 'Male', 'Female', 'Female'],
                      'class' : ['A','B','C','D','A'],
                      'city' : ['Delhi','Gurugram','Delhi','Delhi','Gurugram'] }) 
                                                                                      
data.head()

強大的Python數據科學技巧有哪些

# One Hot Encoding 
# create an object of the One Hot Encoder 

ce_OHE = ce.OneHotEncoder(cols=['gender','city']) 

# transform the data 
data = ce_OHE.fit_transform(data) 
data.head()

強大的Python數據科學技巧有哪些

category_encoders支持大約15種不同的編碼方法,例如:

  • 哈希編碼

  • LeaveOneOut編碼

  • 順序編碼

  • 二進制編碼

  • 目標編碼

所有編碼器都與 sklearn-transformers 完全兼容,因此可以輕松地在你現有的腳本中使用它們。另外,category_encoders支持NumPy數組和Pandas數據幀。你可以在此處閱讀有關category_encoders的更多信息。

4. progress_apply:監視你花費在數據科學任務上的時間

你通常花費多少時間來清理和預處理數據?數據科學家通常花費60~70%的時間來清理數據這一說法是正確的。對我們來說,追蹤這一點很重要,對嗎?

我們不想花費數天的時間來清理數據,而忽略其他數據科學步驟。這是progress_apply 函數使我們的研究更加輕松的地方。讓我演示一下它是如何工作的。

讓我們計算所有點到特定點的距離,并查看完成此任務的進度。

import pandas as pd
from tqdm._tqdm_notebook import tqdm_notebook
from pysal.lib.cg import harcdist
tqdm_notebook.pandas()
data = pd.read_csv('3D_spatial_network.csv')
data.head()

強大的Python數據科學技巧有哪些

# calculate the distance of each data point from # (Latitude, Longitude) = (58.4442, 9.3722) 

def calculate_distance(x): 
   return harcdist((x['LATITUDE'],x['LONGITUDE']),(58.4442, 9.3722)) 
   
data['DISTANCE'] = data.progress_apply(calculate_distance,axis=1)

你會看到跟蹤我們的代碼進度有多么容易。簡單,高效。

5. pandas_profiling:生成數據集的詳細報告

我們花了很多時間來理解我們得到的數據。這很公平——我們不想在不了解我們正在使用的模型的情況下直接跳入模型構建。這是任何數據科學項目中必不可少的步驟。

pandas_profiling 是一個Python軟件包,可減少執行初始數據分析步驟所需的大量工作。該軟件包只需一行代碼即可生成有關我們數據的詳細報告!

import pandas as pd 
import pandas_profiling 

# read the dataset 
data = pd.read_csv('add-your-data-here') 
pandas_profiling.ProfileReport(data)

我們可以看到,僅用一行代碼,就得到了數據集的詳細報告:

  • 警告,例如: Item_Identifier具有高基數:1559個不同的值警告

  • 所有類別變量的頻率計數

  • 數字變量的分位數和描述統計

  • 相關圖

6. grouper:對時間序列數據進行分組

現在誰不熟悉Pandas?它是最流行的Python庫之一,廣泛用于數據操作和分析。我們知道Pandas有驚人的能力來操縱和總結數據。

我最近在研究一個時間序列問題,發現Pandas有一個我以前從未使用過的 Grouper 函數。我開始對它的使用感到好奇。

事實證明,這個Grouper函數對于時間序列數據分析是一個非常重要的函數。讓我們試試這個,看看它是如何工作的。你可以在這里下載此代碼的數據集。

import pandas as pd 

data = pd.read_excel('sales-data.xlsx') 
data.head()

強大的Python數據科學技巧有哪些

現在,處理任何時間序列數據的第一步是將date列轉換為DateTime格式:

data['date'] = pd.to_datetime(data['date'])

假設我們的目標是查看每個客戶的每月銷售額。我們大多數人都在這里嘗試寫一些復雜的東西。但這是Pandas對我們來說更有用的地方。

data.set_index('date').groupby('name')["ext price"].resample("M").sum()

強大的Python數據科學技巧有哪些

我們可以通過groupby語法使用一種簡單的方法,而不必再進行重新索引。我們將為這個函數添加一些額外的內容,提供一些關于如何在date列中對數據分組的信息。它看起來更干凈,工作原理完全相同:

data.groupby(['name', pd.Grouper(key='date', freq='M')])['ext price'].sum()

強大的Python數據科學技巧有哪些

7. unstack:將索引轉換為Dataframe的列

我們剛剛看到了grouper如何幫助對時間序列數據進行分組。現在,這里有一個挑戰——如果我們想將name列(在上面的示例中是索引)作為dataframe的列呢。

這就是unstack函數變得至關重要的地方。讓我們對上面的代碼示例應用unstack函數并查看結果。

data.groupby(['name', pd.Grouper(key='date', freq='M')])['ext price'].sum().unstack()

強大的Python數據科學技巧有哪些 非常有用!注意:如果索引不是MultiIndex,則輸出將是Series。

8.%matplotlib Notebook:Jupyter Notebook中的交互式繪圖

我是matplotlib庫的超級粉絲。它是我們在Jupyter Notebook中用來生成各種圖形的最常見的可視化庫。

要查看這些繪圖,我們通常在導入matplotlib庫時使用一行——%matplotlib inline。這很好用,它呈現了Jupyter Notebook中的靜態圖。

只需將行 %matplotlib替換為 %matplotlib notebook,就可以看到神奇的效果了。你將在你的 Notebook得到可調整大小和可縮放的繪圖!

%matplotlib notebook
import matplotlib.pyplot as plt

# scatter plot of some data # try this on your dataset
plt.scatter(data['quantity'],data['unit price'])

只需更改一個字,我們就可以獲取交互式繪圖,從而可以在繪圖中調整大小和縮放。

9. %% time:檢查特定Python代碼塊的運行時間

解決一個問題可以有多種方法。作為數據科學家,我們對此非常了解。計算成本在行業中至關重要,尤其是對于中小型組織而言。你可能希望選擇最好的方法,以在最短的時間內完成任務。

實際上,在Jupyter Notebook中檢查特定代碼塊的運行時間非常容易。

只需添加%% time命令來檢查特定單元格的運行時間:

%%time 
def myfunction(x) : 
    for i in range(1,100000,1) : 
        i=i+1

強大的Python數據科學技巧有哪些

在這里,我們有CPU時間和Wall時間。CPU時間是CPU專用于某個進程的總執行時間或運行時間。Wall時間是指時鐘從流程開始到“現在”之間經過的時間。

10:rpy2:R和Python在同一個Jupyter Notebook中!

R和Python是數據科學世界中最好的和最受歡迎的兩種開源編程語言。R主要用于統計分析,而Python提供了一個簡單的接口,可將數學解決方案轉換為代碼。

這是個好消息,我們可以在一個Jupyter Notebook中同時使用它們!我們可以利用這兩個生態系統,為此,我們只需要安裝rpy2。

因此,現在暫時擱置R與Python的爭論,并在我們的Jupyter Notebook中繪制ggplot級圖表。

!pip3 install rpy2

我們可以同時使用兩種語言,甚至可以在它們之間傳遞變量。

%load_ext rpy2.ipython
%R require(ggplot2)
import pandas as pd
df = pd.DataFrame({
        'Class': ['A', 'A', 'A', 'V', 'V', 'A', 'A', 'A'],
        'X': [4, 3, 5, 2, 1, 7, 7, 5],
        'Y': [0, 4, 3, 6, 7, 10, 11, 9],
        'Z': [1, 2, 3, 1, 2, 3, 1, 2]
    })
%%R -i df
ggplot(data = df) + geom_point(aes(x = X, y= Y, color = Class, size = Z))

強大的Python數據科學技巧有哪些

在這里,我們用Python 創建了一個數據框df,并使用它創建了一個使用R的ggplot2庫(geom_point函數)的散點圖。

到此,關于“強大的Python數據科學技巧有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安吉县| 安庆市| 政和县| 镇雄县| 邻水| 蕉岭县| 平邑县| 庆元县| 广平县| 柘城县| 宣化县| 黄石市| 尉犁县| 章丘市| 深水埗区| 玉山县| 华容县| 玉树县| 定襄县| 藁城市| 乌拉特中旗| 云浮市| 永仁县| 贞丰县| 贺州市| 胶南市| 青冈县| 翁牛特旗| 大兴区| 金川县| 新昌县| 玛纳斯县| 利川市| 额济纳旗| 丹凤县| 涡阳县| 普兰店市| 电白县| 临西县| 扶余县| 永清县|