使用Python从矩阵中的一组整数中选取一个随机元素

使用Python从矩阵中的一组整数中选取一个随机元素,python,Python,我有一个充满100个整数的矩阵。这些整数是0、1和2的混合。如何从该矩阵中随机选取0?该问题是否有功能 编辑:我还需要知道这个随机0的原点在矩阵中的位置,因为我必须在之后用另一个值交换这个0,从您描述问题的方式来看,下面的代码可以做到: print(0) 假设矩阵是以下形式的数组数组: A = [[0, 0, 1], [0, 1, 0]] 我还假设您需要从元素为0的所有索引对中统一绘制一对随机索引。如果选择元素,则每次都将为0。您可以这样做: import random A =

我有一个充满100个整数的矩阵。这些整数是0、1和2的混合。如何从该矩阵中随机选取0?该问题是否有功能


编辑:我还需要知道这个随机0的原点在矩阵中的位置,因为我必须在之后用另一个值交换这个0,从您描述问题的方式来看,下面的代码可以做到:

print(0)

假设矩阵是以下形式的数组数组:

A = [[0, 0, 1],
     [0, 1, 0]]
我还假设您需要从元素为0的所有索引对中统一绘制一对随机索引。如果选择元素,则每次都将为0。您可以这样做:

import random

A = # your matrix

# generate the pairs
zero_indexes = [(i, j)
  # for each index along each axis
  for i in range(len(A)) 
  for j in range(len(A[i]))
  # keep the pair if it's element is 0
  if A[i][j] == 0]

# make a random pick from your pairs
random_zero = random.choice(zero_indexes)
print(random_zero)
更新:您提到要将随机选择的0与另一个值交换,这可以通过我的方法完成,这样就可以将其添加到上面块的末尾:

i, j = random_zero
A[i][j] = # your new value

你的问题我不清楚。请添加一个例子,说明预期的行为。随机0是指从元素的所有索引中随机选取的0的索引吗?谢谢:我忘了提到我需要知道这个随机零在矩阵中的原点位置,因为我必须在最后用另一个值交换这个零。THX原点位置是什么意思?这与我提供的索引对有何不同?变量random_zero是一个元组,所以你可以这样做,i,j=random_zero,然后像a[i][j]=n那样把它们插回你的矩阵来更新这个位置。