【问题标题】:What is the Java equivalent of Python's Numpy np.random.choice? [duplicate]Python 的 Numpy np.random.choice 的 Java 等价物是什么? [复制]
【发布时间】:2018-08-26 22:27:34
【问题描述】:

我一直在为 pythons np.random.choice(Numpy as np)寻找 Java 的等效代码或基础理论。我正在尝试用 Java 实现 Q-learning。我有一个类似的实现,它使用 Python 的 np.random.choice 方法从概率分布中选择随机移动。

Python's code

输入列表:['pooh', 'rabbit', 'piglet', 'Christopher'] 和概率:[0.5, 0.1, 0.1, 0.3]

在给定每个输入元素的相关概率的情况下,我想从输入列表中选择一个值。

【问题讨论】:

  • 我认为您会在发布问题的同时编写该方法。如果找不到,就写吧。就这么简单。
  • @rpg711 我确信这不是一个重复的问题。请参考此链接docs.scipy.org/doc/numpy-1.12.0/reference/generated/…
  • 完全相同的事情,numpy.choice 与 python random.sample() 做同样的事情,从输入数组中随机抽取一组项目。除非你想要在样本中替换它。在任何一种情况下,您都可以使用 java 中的列表随机播放来模拟所有这些功能。
  • 在 Java SE 库中没有直接的等价物。如果您要求参考第 3 方实施,那就是离题。如果您要求某人为您编写它……那太宽泛了(IMO)。如果您要询问如何在 Java 中使用 Numpy 在 python 中实现的某些事情......告诉我们它是什么。在问题中,不是 cmets!
  • @rpg711 我有自己的输入列表概率分布。鉴于该概率分布。我想从输入列表中选择随机值。

标签: java python numpy random probability


【解决方案1】:

使用 Apache Commons 数学库的好主意,EnumeratedInteger 分布,http://commons.apache.org/proper/commons-math/javadocs/api-3.6/org/apache/commons/math3/distribution/EnumeratedIntegerDistribution.html

顺其自然(在一些伪代码中)

values = new String[4]{'pooh', 'rabbit', 'piglet', 'Christopher'};
dist   = new EnumeratedIntegerDistribution(new int[4]{0,1,2,3}, new double[4]{0.5, 0.1, 0.1, 0.3});

int idx = dist.sample();
return values[idx];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2012-09-26
    • 2021-07-01
    • 1970-01-01
    • 2016-07-04
    • 2010-09-27
    相关资源
    最近更新 更多