日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

分类变量 哑变量矩阵 指标矩阵_不懂数据集重排序?分类变量转换苦难?4种python方法,不再难!...

發(fā)布時間:2025/3/19 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分类变量 哑变量矩阵 指标矩阵_不懂数据集重排序?分类变量转换苦难?4种python方法,不再难!... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

數(shù)據(jù)排序、分類變量轉(zhuǎn)換是數(shù)據(jù)處理與分析中常常遇到對場景,且需要有準確的判斷以及準確的處理方式,否則會影響數(shù)據(jù)質(zhì)量,產(chǎn)生臟數(shù)據(jù),進而影響數(shù)據(jù)呈現(xiàn)效果或預(yù)測效果等,更別提機器學(xué)習與深度學(xué)習準確性等系列問題。小編接下來會針對python方法在該場景的應(yīng)用做具體介紹。

排列和隨機采樣

利用numpy.random.permutation函數(shù)可以輕松實現(xiàn)對Series和DataFrame的列的排列工作(permuting,隨機重排序)。通過需要排列的軸的長度調(diào)用permutation,可產(chǎn)生一個表示新順序的整數(shù)數(shù)組:

1.使用permutation()進行排列

我們先使用DataFrame創(chuàng)建一個5行4列的數(shù)據(jù)集,然后使用numpy.random.permutation函數(shù)進行重新排序,具體如下:

2.使用take函數(shù)對數(shù)據(jù)集進行重排序

通過下面對例子可以清楚理解take函數(shù)對作用。sampler是np.random.permutation()生成對隨機數(shù)組,然后將這個對象傳入到take函數(shù)中,作用于對象數(shù)據(jù)集,具體如下所示:

In [8]: df Out[8]: 0 1 2 3 0 0 1 2 3 1 4 5 6 7 2 8 9 10 11 3 12 13 14 15 4 16 17 18 19In [9]: df.take(sampler) Out[9]: 0 1 2 3 0 0 1 2 3 1 4 5 6 7 4 16 17 18 19 3 12 13 14 15 2 8 9 10 11

如果不想用替換的方式選取隨機子集,則可以使用permutation:從permutation返回的數(shù)組中切下前k個元素,其中k為期望的子集大小。

In [10]: df.take(np.random.permutation(len(df))[:3]) Out[10]: 0 1 2 3 3 12 13 14 15 2 8 9 10 11 0 0 1 2 3

3.獲取隨機整數(shù):np.random.randint

要通過替換的方式產(chǎn)生樣本,最快的方式通過np.random.randint得到一組隨機整數(shù):

In [11]: ba=np.array([5,7,-1,6,4]) In [12]: ba Out[12]: array([ 5, 7, -1, 6, 4]) In [13]: sampler=np.random.randint(0,len(ba),size=10) In [14]: sampler Out[14]: array([1, 3, 1, 3, 1, 2, 3, 4, 2, 0]) In [15]: draws=ba.take(sampler) In [16]: draws Out[16]: array([ 7, 6, 7, 6, 7, -1, 6, 4, -1, 5])

計算指標/啞變量

另一種常用于統(tǒng)計建?;驒C器學(xué)習的轉(zhuǎn)換方式是:將分類變量轉(zhuǎn)換為“啞變量矩陣”或“指標矩陣”。如果DataFrame的某一列中含有k個不同的值,則可以派生出一個k列矩陣或DataFrame(其值權(quán)威1和0).pandas有一個get_dummies函數(shù)可以實現(xiàn)該功能。

In [17]: df=DataFrame({'key':['b','b','a','c','a','b'],'data1':range(6)}) In [18]: df Out[18]: key data1 0 b 0 1 b 1 2 a 2 3 c 3 4 a 4 5 b 5 In [19]: df['key'] Out[19]: 0 b 1 b 2 a 3 c 4 a 5 b Name: key, dtype: object

使用get_dummies()將分類變量轉(zhuǎn)換為“啞變量矩陣”

In [20]: pd.get_dummies(df['key']) Out[20]: a b c 0 0 1 0 1 0 1 0 2 1 0 0 3 0 0 1 4 1 0 0 5 0 1 0

總結(jié)

數(shù)據(jù)處理與分析的方法豐富且場景復(fù)雜,針對不同的應(yīng)用情況,選擇適合的方法是最恰當且能解決實際問題的。希望大家從中有所收益,實踐中多體會和沉淀,感謝大家支持!記得關(guān)注哦!

總結(jié)

以上是生活随笔為你收集整理的分类变量 哑变量矩阵 指标矩阵_不懂数据集重排序?分类变量转换苦难?4种python方法,不再难!...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。