mars.dataframe.Series.sample#
- Series.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None, always_multinomial=False)#
从对象的一个轴返回一个随机样本的项目。
您可以使用 random_state 以确保结果可重复。
- Parameters
n (int, 可选) – 从轴上返回的项目数量。不能与 frac 一起使用。默认值 = 1 如果 frac = None。
frac (float, 可选) – 返回轴项的分数。不能与 n 一起使用。
replace (bool, default False) – 允许或不允许对同一行进行多次采样。
weights (str 或 ndarray-like, 可选) – 默认‘None’将导致等概率加权。 如果传入一个Series,将根据索引与目标对象对齐。 在weights中的索引值如果在采样对象中未找到,将被忽略, 而在采样对象中不在weights中的索引值将被分配为零权重。 如果在DataFrame上调用,将接受列名 当轴 = 0时。 除非权重是一个Series,权重的长度必须与被采样的轴相同。 如果权重的总和不等于1,它们将被归一化为总和为1。 权重列中的缺失值将被视为零。 不允许无限值。
random_state (int, array-like, BitGenerator, np.random.RandomState, optional) – 如果是int、array-like或BitGenerator(NumPy>=1.17),则为随机数生成器的种子。如果是np.random.RandomState,则用作numpy RandomState对象。
axis ({0 或 ‘index’, 1 或 ‘columns’, None}, 默认是 None) – 进行采样的轴。接受轴的数字或名称。默认是给定数据类型的统计轴(对于 Series 和 DataFrames 为 0)。
always_multinomial (bool, default False) – 如果为 True,则始终将数据块之间的样本计数分布视为多项分布。当数据量庞大时,这将加速采样,但当实例数量不大时,可能会影响样本的随机性。
- Returns
一个与调用者类型相同的新对象,包含从调用者对象随机抽样的 n 个项目。
- Return type
另请参阅
DataFrameGroupBy.sample从DataFrame对象的每个组生成随机样本。
SeriesGroupBy.sample从Series对象的每个组生成随机样本。
numpy.random.choice从给定的1-D numpy数组生成随机样本。
备注
如果 frac > 1,replacement 应设置为 True。
示例
>>> import mars.dataframe as md >>> df = md.DataFrame({'num_legs': [2, 4, 8, 0], ... 'num_wings': [2, 0, 0, 0], ... 'num_specimen_seen': [10, 2, 1, 8]}, ... index=['falcon', 'dog', 'spider', 'fish']) >>> df.execute() num_legs num_wings num_specimen_seen falcon 2 2 10 dog 4 0 2 spider 8 0 1 fish 0 0 8
从
Seriesdf['num_legs']中提取3个随机元素: 注意,我们使用random_state来确保示例的可重复性。>>> df['num_legs'].sample(n=3, random_state=1).execute() fish 0 spider 8 falcon 2 Name: num_legs, dtype: int64
随机50%的样本来自于
DataFrame,带替换:>>> df.sample(frac=0.5, replace=True, random_state=1).execute() num_legs num_wings num_specimen_seen dog 4 0 2 fish 0 0 8
带替代的
DataFrame的上采样示例: 请注意replace参数必须为True,以使frac参数 > 1。>>> df.sample(frac=2, replace=True, random_state=1).execute() num_legs num_wings num_specimen_seen dog 4 0 2 fish 0 0 8 falcon 2 2 10 falcon 2 2 10 fish 0 0 8 dog 4 0 2 fish 0 0 8 dog 4 0 2
将DataFrame列用作权重。num_specimen_seen列中值较大的行更有可能被采样。
>>> df.sample(n=2, weights='num_specimen_seen', random_state=1).execute() num_legs num_wings num_specimen_seen falcon 2 2 10 fish 0 0 8