【问题标题】:How to specify array indexes to be randomized?如何指定要随机化的数组索引?
【发布时间】:2021-12-11 23:23:13
【问题描述】:

我有一个初始组合随机化器,生成一个随机二进制数组。

np.random.binomial(1, 0.5, 20)

问题是 - 有没有办法指定要在数组中随机化的索引? 也许来自 numpy 工具集的任何东西? 或者那会是一个指定的循环?

【问题讨论】:

  • 您能否提供一个示例来说明您希望如何使用随机索引?在01 的随机数组的特定情况下,如果输入数组是随机的,则对其进行改组/随机化索引不会使其更加随机……尽管这可能不是您的意图。
  • 再乘以一个电源键,然后通过np.sum这样对数组进行计数,提供一个数字,就是我想要影响到一定程度所需的系数
  • 您能否提供一个示例输入和预期输出?如果我明白你在说什么,你有(电源键?电源键数组?)你想要相乘和求和(二项式数组与电源键的标量积之和?二项式数组与电源键的点积数组?)以某种方式?
  • array1 = np.random.binomial(1, 0.5, 20) row = np.sum(array1*power_key) array1*power_key Out[7]: array([512, 256, 0, 0, 0, 16, 8, 4, 0, 0]) 然后将其相加为 796
  • 请将示例添加到原始帖子中,以便其他人阅读

标签: python arrays numpy random


【解决方案1】:

听起来像你想要的

# make the index mask how you prefer
index_mask = np.array([5,7,8,13,14,18])

# generate the randomizer for the complete index window
randomizer = np.random.bionmial(1,0.5,20)

# make your power key as you want
power_key = 2**np.arange(20)[::-1]

# mask the randomizer with the index_mask
result = np.isin(np.arange(20),index_mask)*randomizer*power_key

return result.sum()

【讨论】:

  • 是的,电源键部分错误。但不,它确实提供了数组的乘法。我最初的问题是如何指定要随机化的数组中的索引。 np.random.binomial(1, 0.5, 20) 这给了我一个随机选择的 20 个索引的数组。 0.5 为 0 或 1。如果我想指定它们中的哪一个只被随机化怎么办?只喜欢索引 5,7,8, 9, 13, 14, 18
  • 你想对未指定的索引做什么?
猜你喜欢
  • 2012-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多