从两个向量中选择随机值(python)
我有两个向量从两个向量中选择随机值(python),python,arrays,random,Python,Arrays,Random,我有两个向量 A B 它们是耦合的,我的意思是它们在给定的位置定义了一个特定的标量场 我想从A中选择1000个随机项目,并绘制它们与其他1000个B耦合项目的对比图 使用此代码 A_rand=random.sample(A,1000) 我选择了1000个A的随机值。例如,它们是A[1],A[50],A[49],等等 如何选择B[1]、B[50]、B[49]等 我试过了 B_rand=B[(A==A_rand)] 但它只返回一个值。我做错了什么?您可以选择索引,而不是项目:
A
B
它们是耦合的,我的意思是它们在给定的位置定义了一个特定的标量场
我想从A中选择1000个随机项目,并绘制它们与其他1000个B耦合项目的对比图
使用此代码
A_rand=random.sample(A,1000)
我选择了1000个A的随机值。例如,它们是A[1],A[50],A[49],等等
如何选择B[1]、B[50]、B[49]等
我试过了
B_rand=B[(A==A_rand)]
但它只返回一个值。我做错了什么?您可以选择索引,而不是项目:
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]
您可以选择索引,而不是项目:
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]
您还可以预先将它们与
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)
您还可以预先将它们与
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)