以下是一个按行从矩阵中取样的示例代码:
def sample_rows(matrix, num_samples):
num_rows = len(matrix)
if num_samples >= num_rows:
return matrix
else:
indices = list(range(num_rows))
sampled_indices = random.sample(indices, num_samples)
sampled_indices.sort()
sampled_matrix = [matrix[i] for i in sampled_indices]
return sampled_matrix
这段代码的功能是从给定的矩阵中按行进行取样。它接受两个参数:matrix
是一个二维矩阵,num_samples
是要取样的行数。
首先,获取矩阵的行数。如果要取样的行数大于等于矩阵的行数,则直接返回整个矩阵。
否则,生成一个包含所有行索引的列表。然后,使用random.sample()
函数从索引列表中随机选择指定数量的索引,保证每次取样的结果都是随机且唯一的。接着,对取样的索引进行排序,以确保最后返回的矩阵按照行顺序排列。
最后,根据取样的索引,从原始矩阵中提取对应的行,存储在sampled_matrix
列表中,并将其返回作为取样结果。
这个示例代码使用Python语言编写,你可以根据自己的需要进行修改和使用。