random.sample()
random.sample
函数是 Python 的 random
模块中的一个函数,它用于从一个序列中随机抽取指定数量的不重复的元素,并以列表形式返回这些元素。这个函数非常适合用于需要随机抽样而不希望有重复元素的场景。
import random
# 假设我们有一个数字列表
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 我们想从这个列表中随机抽取3个不重复的数字
sampled_numbers = random.sample(numbers, 3)
print("随机抽取的数字:", sampled_numbers)
在这个例子中:
numbers
是一个包含10个数字的列表。random.sample(numbers, 3)
会从这个列表中随机选择3个不同的元素。每次执行这行代码时,都可能得到不同的结果,因为它是随机的。sampled_numbers
将是一个包含3个从numbers
列表中随机选择的不重复数字的新列表。
这个函数保证了抽样的元素是唯一的,即不会在返回的列表中重复。
np.where()
import numpy as np
import random
# 假设我们有一个标签数组,每个元素表示数据集中对应样本的标签
self.labels = np.array([0, 1, 2, 1, 0, 2, 1, 0, 2, 1])
# 我们想要随机选取标签为1的样本的一部分索引,比如说50%的样本
i = 1 # 我们感兴趣的标签
ratio = 0.5 # 我们想要选取的比例
# 找出所有标签为i的样本的索引
indexes_of_i = np.where(self.labels == i)[0]
# 计算根据比例应该选取的样本数量
num_samples_to_select = int(len(indexes_of_i) * ratio)
# 随机选取指定数量的样本索引
selected_indexes = random.sample(list(indexes_of_i), num_samples_to_select)
print("所有标签为1的样本的索引:", indexes_of_i)
print("随机选取的索引:", selected_indexes)
print(np.where(labels == i))
index.extend()
extend()
方法是 Python 列表(list)的一个方法,用于将一个迭代器(如另一个列表、元组、集合等)中的所有元素添加到当前列表的末尾。这与 append()
方法不同,后者是将一个单独的元素添加到列表的末尾。使用 extend()
方法可以合并两个列表或将任何可迭代对象中的元素添加到当前列表中。
以下是使用 extend()
方法的一个例子:
# 定义一个初始列表
indexes = [1, 2, 3]
# 我们想要将另一个列表的元素添加到 indexes 列表中
more_indexes = [4, 5, 6]
# 使用 extend() 方法合并列表
indexes.extend(more_indexes)
print(indexes)
输出将会是:
[1, 2, 3, 4, 5, 6]
在这个例子中,extend()
方法将 more_indexes
列表中的所有元素添加到了 indexes
列表的末尾,结果是一个包含了两个列表所有元素的新列表。
如果你使用 append()
而不是 extend()
,结果将会不同:
indexes = [1, 2, 3]
indexes.append(more_indexes) # 使用 append() 而不是 extend()
print(indexes)
输出将会是:
[1, 2, 3, [4, 5, 6]]
可以看到,使用 append()
方法时,more_indexes
列表被添加为一个整体,作为一个元素添加到了 indexes
列表的末尾,而不是将其元素分别添加。