【问题标题】:Select random values from two vector (python)从两个向量中选择随机值(python)
【发布时间】:2011-07-29 10:05:44
【问题描述】:

我有两个向量

   A
   B

它们是耦合的,我的意思是它们在给定位置定义了某个标量场。

我想从 A 中随机选择 1000 个项目,并将它们与其他 1000 个 B 耦合项目进行对比。

使用此代码

  A_rand=random.sample(A,1000)

我选择A的1000个随机值,比如A[1],A[50],A[49]等。

如何选择 B[1]、B[50]、B[49] 等。 ?

我试过了

 B_rand=B[(A==A_rand)]

但它只返回一个值。我做错了什么?

【问题讨论】:

    标签: python arrays random


    【解决方案1】:

    您可以选择索引,而不是项目:

    rand = random.sample(range(len(A)), 1000)
    

    然后你可以使用A[rand[i]]和B[rand[i]]。

    对于所有选定的项目:

    A_rand = [A[x] for x in rand]
    B_rand = [B[x] for x in rand]
    

    【讨论】:

      【解决方案2】:

      您也可以预先将它们与zip 耦合,然后选择样本,

      rand = random.sample(zip(A, B), 1000)
      

      这样您将拥有一个包含元组的列表。

      例如[(A[1],B[1]),(A[50],B[50]),(A[49],B[49]),...]

      然后要从该列表中获取A_rand 和B_rand,您可以使用解压缩它们

      A_rand, B_rand = zip(*rand)
      

      【讨论】:

        猜你喜欢
        • 2012-05-19
        • 2014-04-21
        • 2019-03-15
        • 1970-01-01
        • 1970-01-01
        • 2019-07-30
        • 2015-05-09
        • 2015-01-09
        • 1970-01-01
        相关资源
        最近更新 更多