用 python 中的随机数替换二维矩阵的元素

Replacing an element of a 2D matrix with a random number in python

我有一个二维矩阵A=[[27 1 63 66 79],[55 20 40 26 68],[42 64 96 27 14]]。我想用随机数替换每个大于 20 的元素。每次检测到大于 20 的条目时,有没有办法用新的随机数替换它。我不想使用 for 循环并遍历每个条目。 我正在使用这个 A[A>20]= np.random.randint(0,9)。然而,在这种技术中,每个大于 20 的条目都被替换为一个固定的随机数。

假设你有一个 numpy 数组。您需要生成相同形状的随机数组。

A = np.where(A>20, np.random.randint(0,9, size=A.shape), A)

示例输出:

array([[0, 8, 3, 0, 2],
       [1, 4, 7, 5, 1],
       [5, 4, 8, 7, 6]])