python - 从 numpy 数组中选择 'some' 个随机点

标签 python arrays numpy

我有两个相关的 numpy 数组,Xy。我需要从 X 中选择 n 随机行并将其存储在一个数组中,相应的 y 值和附加到它的索引随机选择的点。

我有另一个数组index,它存储了一个我不想采样的索引列表。

我该怎么做?

示例数据:

index = [2,3]
X = np.array([[0.3,0.7],[0.5,0.5] ,[0.2,0.8], [0.1,0.9]])
y = np.array([[0], [1], [0], [1]])

如果这些 X 是随机选择的(其中 n=2):

randomylSelected = np.array([[0.3,0.7],[0.5,0.5]])

期望的输出是:

index = [0,1,2,3]
randomlySelectedY = [0,1]

我该怎么做?

最佳答案

我会管理一个 bool 值数组,我不断使用它来切片索引数组并从结果中随机选择。

n = X.shape[0]
sampled = np.empty(n, dtype=np.bool)
sampled.fill(False)
rng = np.arange(n)

k = 2

while not sampled.all():
    sample = np.random.choice(rng[~sampled], size=k, replace=False)
    print(X[sample])
    print()
    print(y[sample])
    print()
    sampled[sample] = True

[[ 0.2  0.8]
 [ 0.5  0.5]]

[[0]
 [1]]

[[ 0.3  0.7]
 [ 0.1  0.9]]

[[0]
 [1]]

关于python - 从 numpy 数组中选择 'some' 个随机点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43507689/

相关文章:

python - 浮点运算 : Possible unsafe reliance on specific comparison?

Python - 使用 latex 格式中断字符串

python - 如何在 Python 自然语言工具包中创建自己的语料库?

python - Django 表格 :Post request is got but data is not saved

c - 当将 *void 项添加到 *void 数组中时,编译器如何知道要在内存中使用多少字节?

python - 读/写 NumPy 结构化数组非常慢,线性大小慢

python - 如何将一个数组插入到另一个只有零的数组中(使用 Numpy)

javascript - 为什么传递函数引用失败而使用函数声明却失败?

python - 将具有重复索引的系列数据附加到 pandas 数据框列

python - 从矩阵中减去转置但保留原始对角线