gpt4 book ai didi

python - 从二进制 numpy 矩阵的每一行中随机选择一个?

转载 作者:行者123 更新时间:2023-11-28 21:56:12 25 4
gpt4 key购买 nike

假设我有一个二进制矩阵。我想将该矩阵转换为另一个矩阵,其中每一行都有一个矩阵,并且该矩阵的索引对于每一行都是随机的。

例如,如果其中一行是 [0,1,0,1,0,0,1] 并且我将其转换为 [0,0,0,1, 0,0,0] 我们随机选择 1 的索引。

我如何在 numpy 中做到这一点?

目前我找到每行的最大值(因为 max 函数返回一个索引)并将其设置为零。如果所有行最多有 2 行,它会起作用,但如果超过 2 行,则它会失败。

最佳答案

扩展@zhangxaochen 的答案,给定一个随机二进制数组

x = np.random.random_integers(0, 1, (8, 8))

您可以使用从 x 中随机抽取的 1 填充另一个数组:

y = np.zeros_like(x)
ind = [np.random.choice(np.where(row)[0]) for row in x]
y[range(x.shape[0]), ind] = 1

关于python - 从二进制 numpy 矩阵的每一行中随机选择一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21885135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com