當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python pandas.Series.sparse.to_coo用法及代碼示例


用法:

Series.sparse.to_coo(row_levels=(0,), column_levels=(1,), sort_labels=False)

從具有 MultiIndex 的係列創建 scipy.sparse.coo_matrix。

使用row_levels和column_levels分別確定行坐標和列坐標。 row_levels 和column_levels 是級別的名稱(標簽)或編號。 {row_levels, column_levels} 必須是 MultiIndex 級別名稱(或數字)的分區。

參數

row_levels元組/列表
column_levels元組/列表
sort_labels布爾值,默認為 False

在形成稀疏矩陣之前對行和列標簽進行排序。當 row_levels 和/或 column_levels 引用單個級別時,設置為 True 以加快執行速度。

返回

yscipy.sparse.coo_matrix
rows列表(行標簽)
columns列表(列標簽)

例子

>>> s = pd.Series([3.0, np.nan, 1.0, 3.0, np.nan, np.nan])
>>> s.index = pd.MultiIndex.from_tuples(
...     [
...         (1, 2, "a", 0),
...         (1, 2, "a", 1),
...         (1, 1, "b", 0),
...         (1, 1, "b", 1),
...         (2, 1, "b", 0),
...         (2, 1, "b", 1)
...     ],
...     names=["A", "B", "C", "D"],
... )
>>> s
A  B  C  D
1  2  a  0    3.0
         1    NaN
   1  b  0    1.0
         1    3.0
2  1  b  0    NaN
         1    NaN
dtype:float64
>>> ss = s.astype("Sparse")
>>> ss
A  B  C  D
1  2  a  0    3.0
         1    NaN
   1  b  0    1.0
         1    3.0
2  1  b  0    NaN
         1    NaN
dtype:Sparse[float64, nan]
>>> A, rows, columns = ss.sparse.to_coo(
...     row_levels=["A", "B"], column_levels=["C", "D"], sort_labels=True
... )
>>> A
<3x4 sparse matrix of type '<class 'numpy.float64'>'
with 3 stored elements in COOrdinate format>
>>> A.todense()
matrix([[0., 0., 1., 3.],
[3., 0., 0., 0.],
[0., 0., 0., 0.]])
>>> rows
[(1, 1), (1, 2), (2, 1)]
>>> columns
[('a', 0), ('a', 1), ('b', 0), ('b', 1)]

相關用法


注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.Series.sparse.to_coo。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。