本文簡要介紹 python 語言中 scipy.stats.contingency.crosstab
的用法。
用法:
scipy.stats.contingency.crosstab(*args, levels=None, sparse=False)#
返回
*args
中每個可能的唯一組合的計數表。什麽時候
len(args) > 1
,這個函數計算的數組通常被稱為列聯表 [1].參數必須是具有相同長度的序列。第二個返回值,數數, 是一個整數數組
len(args)
方麵。如果水平是無,形狀數數是(n0, n1, ...)
,其中nk
是唯一元素的數量args[k]
.- *args: 序列
要計算其唯一對齊元素的序列序列。 args 中的序列必須全部具有相同的長度。
- levels: 順序,可選
如果水平給定,它必須是一個長度相同的序列參數.中的每個元素水平是序列或無。如果是序列,則給出對應序列中的值參數要計算的。如果序列中的任何值參數不會出現在相應的序列中水平,該值被忽略且不計入返回的數組數數.默認值為水平為了
args[i]
是np.unique(args[i])
- sparse: 布爾型,可選
如果為 True,則返回一個稀疏矩陣。矩陣將是scipy.sparse.coo_matrix類。因為 SciPy 的稀疏矩陣必須是二維的,所以當疏是真的。默認為假。
- res: CrosstabResult
包含以下屬性的對象:
- 元素 numpy.ndarrays 的元組。
長度元組
len(args)
包含計算在內的元素數組數數.這些可以解釋為對應維度的標簽數數.如果水平被給定了,那麽如果levels[i]
不是無,elements[i]
將保持給出的值levels[i]
.- 數數 numpy.ndarray 或 scipy.sparse.coo_matrix
中唯一元素的計數
zip(*args)
,存儲在一個數組中。也被稱為列聯表當len(args) > 1
.
參數 ::
返回 ::
注意:
參考:
[1]“Contingency table”、http://en.wikipedia.org/wiki/Contingency_table
例子:
>>> from scipy.stats.contingency import crosstab
給定列表 a 和 x,創建一個列聯表,計算相應對的頻率。
>>> a = ['A', 'B', 'A', 'A', 'B', 'B', 'A', 'A', 'B', 'B'] >>> x = ['X', 'X', 'X', 'Y', 'Z', 'Z', 'Y', 'Y', 'Z', 'Z'] >>> res = crosstab(a, x) >>> avals, xvals = res.elements >>> avals array(['A', 'B'], dtype='<U1') >>> xvals array(['X', 'Y', 'Z'], dtype='<U1') >>> res.count array([[2, 3, 0], [1, 0, 4]])
所以 (‘A’, ‘X’) 出現兩次,(‘A’, ‘Y’) 出現 3 次,以此類推。
可以創建更高維的列聯表。
>>> p = [0, 0, 0, 0, 1, 1, 1, 0, 0, 1] >>> res = crosstab(a, x, p) >>> res.count array([[[2, 0], [2, 1], [0, 0]], [[1, 0], [0, 0], [1, 3]]]) >>> res.count.shape (2, 3, 2)
要計數的值可以通過使用級別參數來設置。它允許顯式給出每個輸入序列中感興趣的元素,而不是找到序列的唯一元素。
例如,假設其中一個參數是一個包含調查問題答案的數組,整數值為 1 到 4。即使值 1 沒有出現在數據中,我們也希望在表中為其輸入一個條目。
>>> q1 = [2, 3, 3, 2, 4, 4, 2, 3, 4, 4, 4, 3, 3, 3, 4] # 1 does not occur. >>> q2 = [4, 4, 2, 2, 2, 4, 1, 1, 2, 2, 4, 2, 2, 2, 4] # 3 does not occur. >>> options = [1, 2, 3, 4] >>> res = crosstab(q1, q2, levels=(options, options)) >>> res.count array([[0, 0, 0, 0], [1, 1, 0, 1], [1, 4, 0, 1], [0, 3, 0, 3]])
如果給定了levels,但levels的一個元素是None,則使用相應參數的唯一值。例如,
>>> res = crosstab(q1, q2, levels=(None, options)) >>> res.elements [array([2, 3, 4]), [1, 2, 3, 4]] >>> res.count array([[1, 1, 0, 1], [1, 4, 0, 1], [0, 3, 0, 3]])
如果我們想忽略出現 4 的對
q2
,我們可以隻給出值 [1, 2] 到水平,並且 4 將被忽略:>>> res = crosstab(q1, q2, levels=(None, [1, 2])) >>> res.elements [array([2, 3, 4]), [1, 2]] >>> res.count array([[1, 1], [1, 4], [0, 3]])
最後,讓我們重複第一個示例,但返回一個稀疏矩陣:
>>> res = crosstab(a, x, sparse=True) >>> res.count <2x3 sparse matrix of type '<class 'numpy.int64'>' with 4 stored elements in COOrdinate format> >>> res.count.A array([[2, 3, 0], [1, 0, 4]])
相關用法
- Python SciPy contingency.chi2_contingency用法及代碼示例
- Python SciPy contingency.relative_risk用法及代碼示例
- Python SciPy contingency.margins用法及代碼示例
- Python SciPy contingency.odds_ratio用法及代碼示例
- Python SciPy contingency.expected_freq用法及代碼示例
- Python SciPy contingency.association用法及代碼示例
- Python SciPy constants.nu2lambda用法及代碼示例
- Python SciPy constants.convert_temperature用法及代碼示例
- Python SciPy constants.precision用法及代碼示例
- Python SciPy constants.unit用法及代碼示例
- Python SciPy constants.find用法及代碼示例
- Python SciPy constants.value用法及代碼示例
- Python SciPy convolve.init_convolution_kernel用法及代碼示例
- Python SciPy constants.lambda2nu用法及代碼示例
- Python SciPy coo_array.tocsr用法及代碼示例
- Python SciPy coo_matrix.tocsr用法及代碼示例
- Python SciPy coo_matrix.tocsc用法及代碼示例
- Python SciPy coo_array.diagonal用法及代碼示例
- Python SciPy coo_array.dot用法及代碼示例
- Python SciPy coo_array.tocsc用法及代碼示例
- Python SciPy coo_matrix.nonzero用法及代碼示例
- Python SciPy coo_matrix.dot用法及代碼示例
- Python SciPy coo_matrix.diagonal用法及代碼示例
- Python SciPy coo_array.nonzero用法及代碼示例
- Python SciPy csc_array.diagonal用法及代碼示例
注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.stats.contingency.crosstab。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。