好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Pandas 稀疏數據結構的實現

Pandas 稀疏數據結構的實現

熱門標簽:上海正規的外呼系統最新報價 銀川電話機器人電話 長春極信防封電銷卡批發 煙臺電話外呼營銷系統 如何地圖標注公司 企業彩鈴地圖標注 電銷機器人錄音要學習什么 外賣地址有什么地圖標注 預覽式外呼系統

簡介

如果數據中有很多NaN的值,存儲起來就會浪費空間。為了解決這個問題,Pandas引入了一種叫做Sparse data的結構,來有效的存儲這些NaN的值。

Spare data的例子

我們創建一個數組,然后將其大部分數據設置為NaN,接著使用這個數組來創建SparseArray:

In [1]: arr = np.random.randn(10)

In [2]: arr[2:-2] = np.nan

In [3]: ts = pd.Series(pd.arrays.SparseArray(arr))

In [4]: ts
Out[4]: 
0    0.469112
1   -0.282863
2         NaN
3         NaN
4         NaN
5         NaN
6         NaN
7         NaN
8   -0.861849
9   -2.104569
dtype: Sparse[float64, nan]

這里的dtype類型是Sparse[float64, nan],它的意思是數組中的nan實際上并沒有存儲,只有非nan的數據才被存儲,并且這些數據的類型是float64.

SparseArray

arrays.SparseArray 是一個  ExtensionArray  ,用來存儲稀疏的數組類型。

In [13]: arr = np.random.randn(10)

In [14]: arr[2:5] = np.nan

In [15]: arr[7:8] = np.nan

In [16]: sparr = pd.arrays.SparseArray(arr)

In [17]: sparr
Out[17]: 
[-1.9556635297215477, -1.6588664275960427, nan, nan, nan, 1.1589328886422277, 0.14529711373305043, nan, 0.6060271905134522, 1.3342113401317768]
Fill: nan
IntIndex
Indices: array([0, 1, 5, 6, 8, 9], dtype=int32)

使用 numpy.asarray()  可以將其轉換為普通的數組:

In [18]: np.asarray(sparr)
Out[18]: 
array([-1.9557, -1.6589,     nan,     nan,     nan,  1.1589,  0.1453,
           nan,  0.606 ,  1.3342])

SparseDtype

SparseDtype 表示的是Spare類型。它包含兩種信息,第一種是非NaN值的數據類型,第二種是填充時候的常量值,比如nan:

In [19]: sparr.dtype
Out[19]: Sparse[float64, nan]

可以像下面這樣構造一個SparseDtype:

In [20]: pd.SparseDtype(np.dtype('datetime64[ns]'))
Out[20]: Sparse[datetime64[ns], NaT]

可以指定填充的值:

In [21]: pd.SparseDtype(np.dtype('datetime64[ns]'),
   ....:                fill_value=pd.Timestamp('2017-01-01'))
   ....: 
Out[21]: Sparse[datetime64[ns], Timestamp('2017-01-01 00:00:00')]

Sparse的屬性

可以通過 .sparse 來訪問sparse:

In [23]: s = pd.Series([0, 0, 1, 2], dtype="Sparse[int]")

In [24]: s.sparse.density
Out[24]: 0.5

In [25]: s.sparse.fill_value
Out[25]: 0

Sparse的計算

np的計算函數可以直接用在SparseArray中,并且會返回一個SparseArray。

In [26]: arr = pd.arrays.SparseArray([1., np.nan, np.nan, -2., np.nan])

In [27]: np.abs(arr)
Out[27]: 
[1.0, nan, nan, 2.0, nan]
Fill: nan
IntIndex
Indices: array([0, 3], dtype=int32)

SparseSeries 和 SparseDataFrame

SparseSeries 和 SparseDataFrame在1.0.0 的版本時候被刪除了。取代他們的是功能更強的SparseArray。
看下兩者的使用上的區別:

# Previous way
>>> pd.SparseDataFrame({"A": [0, 1]})
# New way
In [31]: pd.DataFrame({"A": pd.arrays.SparseArray([0, 1])})
Out[31]: 
   A
0  0
1  1

如果是SciPy 中的sparse 矩陣,那么可以使用 DataFrame.sparse.from_spmatrix() :

# Previous way
>>> from scipy import sparse
>>> mat = sparse.eye(3)
>>> df = pd.SparseDataFrame(mat, columns=['A', 'B', 'C'])
# New way
In [32]: from scipy import sparse

In [33]: mat = sparse.eye(3)

In [34]: df = pd.DataFrame.sparse.from_spmatrix(mat, columns=['A', 'B', 'C'])

In [35]: df.dtypes
Out[35]: 
A    Sparse[float64, 0]
B    Sparse[float64, 0]
C    Sparse[float64, 0]
dtype: object

到此這篇關于Pandas 稀疏數據結構的實現的文章就介紹到這了,更多相關Pandas 稀疏數據結構內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 淺析pandas 數據結構中的DataFrame
  • Python Pandas數據結構簡單介紹
  • pandas 數據結構之Series的使用方法
  • Pandas數據結構詳細說明及如何創建Series,DataFrame對象方法

標簽:潮州 西寧 上饒 宜昌 佳木斯 珠海 盤錦 湖北

巨人網絡通訊聲明:本文標題《Pandas 稀疏數據結構的實現》,本文關鍵詞  Pandas,稀疏,數據結構,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Pandas 稀疏數據結構的實現》相關的同類信息!
  • 本頁收集關于Pandas 稀疏數據結構的實現的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 国产熟妇???码AV水也| 黄污视频在线观看| 九九电影网午夜理论片里存瑞| 在教室伦流澡到高潮Hgl| 日韩欧美一区二区不卡| 污视频在线看| 娇妻性系列| 善良的老师伦理BD中字| 干天天| 海外华人8x8x| 城中村老熟妇???| 爽又黄的网免频| 亚洲gogo人体大胆西西安徽| 国产一区二| 大尺度电影大全在线播放| 欧美大尺度裸体床戏| 黄色在线app| 男男道具play含东西调教| 男男gaygays亚洲网站| 在线播放无码高潮的视频 | 无限看片的免费视频下载在线| 欧美91在线| 久久久久久精品毛片A级按摩| 熟女俱乐部XXXX熟妇| aaa一级黑人毛片| 500福利第一导航| 中国女人内谢25xxxxx| 韩国三级蜜瓜电影2020 | 操女人bb| 五月激情综合网| 日本公交车上强在线观看| 危险期被流浪汉开宫受孕| 免费一级婬片AA毛片AA片A片| 揉我奶头?啊?嗯高潮gif| 野狼影院www| 国产精品久久久影院| 吻胸摸全身视频| 两个裸男脱了内裤互摸j视频| 母爱成瘾在线观看| 国产原创在线视频| 极品人妖TS重口系列|