本文简要介绍 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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。