skbio.stats.subsample_counts

skbio.stats.subsample_counts(counts, n, replace=False)[源代码]

从计数向量中随机抽取子样本,有无替换。

状态:从0.4.0开始实验。

参数:
  • counts (1-D array_like) -- 从中随机子采样的计数(整数)向量。

  • n (int) -- 要从中进行子采样的项目数 counts . 必须小于或等于 counts .

  • replace (bool, optional) -- 如果 True ,替换子样本。如果 False (默认),不替换的子样本。

返回:

二次抽样 --元素和等于的计数的子采样向量 n (即, subsampled.sum() == n ). 形状与 counts .

返回类型:

ndarray

抛出:
  • TypeError -- 如果 counts 无法安全地转换为整数数据类型。

  • ValueError -- 如果 n 小于零或大于 counts 什么时候? replace=False .

  • EfficiencyWarning -- 如果加速代码不存在或尚未编译。

备注

如果在没有更换的情况下进行二次取样 (replace=False ),副本 counts 如果返回 n 等于中的项目数 counts ,因为所有项目都将从原始向量中选择。

如果在替换的情况下进行二次取样 (replace=Truen 等于中的项目数 counts ,返回的子采样向量不一定与相同 counts .

示例

从计数向量中的子样本4项(无替换):

>>> import numpy as np
>>> from skbio.stats import subsample_counts
>>> a = np.array([4, 5, 0, 2, 1])
>>> sub = subsample_counts(a, 4)
>>> sub.sum()
4
>>> sub.shape
(5,)

尝试对相同数量的项目进行子抽样(不进行替换)会导致与我们的输入相同的向量:

>>> subsample_counts([0, 3, 0, 1], 4)
array([0, 3, 0, 1])

子样本5项(含替换项):

>>> sub = subsample_counts([1, 0, 1, 2, 2, 3, 0, 1], 5, replace=True)
>>> sub.sum()
5
>>> sub.shape
(8,)