【问题标题】:random.shuffle(points).take(k) in PythonPython 中的 random.shuffle(points).take(k)
【发布时间】:2017-10-03 06:20:24
【问题描述】:

在 Python 中这条 Scala 行的等价物是什么?

 random.shuffle(points).take(k)

我似乎没有在 Python 中找到 shuffle 的 take 方法

【问题讨论】:

  • takescala 中做了什么?

标签: python scala random shuffle


【解决方案1】:

您可以使用 sample 从可迭代对象中选择 k 随机元素

import random

return random.sample(points, k)

此外,random 有 shuffle(但它正在变异),您可以使用切片而不是 take

copy = points[:]
random.shuffle(copy)
return copy[:k]

【讨论】:

    【解决方案2】:

    This 是您拥有的一种选择,从 numpy 到随机洗牌 points

    np.random.shuffle()
    

    This 是您可以从 numpy 中随机选择 kpoints 中选择的一个选项

    np.random.choice(points, size=k)
    

    【讨论】:

    • take方法在哪里?我看到 Python 中的洗牌不采取
    • 请在答案中写下完整的代码,因为链接可能会改变
    • 我向您推荐了该链接,因为它是官方 numpy 文档,如果他们决定更新该功能,该链接仍然指向正确的版本,而不是已弃用的东西
    • 如果您尝试实现以下目标:“随机播放points,然后随机选择k”,您可以使用以下命令:np.random.shuffle(points) np.random.choice(points, size=k)
    • @SanyamMehra:那行不通。 np.random.choice(points, size=k) 使用替换进行选择,因此重复值是可能的。这不是 OP 想要的。
    猜你喜欢
    • 2018-05-11
    • 2023-04-04
    • 1970-01-01
    • 2019-10-10
    • 2014-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多