如何更改一定数量的numpy矩阵元素?

时间:2019-12-25 10:04:24

标签: python numpy

我有一个方形的numpy 2D矩阵。

2 2 2 2
2 2 2 2
2 2 2 2
2 2 2 2

并且我需要将一定数量的随机矩阵值设置为0。假设它是5个元素。这意味着16个矩阵值中的任何5个必须设置为0。例如,新矩阵可以是

2 2 0 0
0 2 2 2
2 2 2 2
0 2 0 2

2 0 2 2
2 2 0 2
2 2 0 2
0 2 2 0

或其他一些

我该如何有效地做到这一点?

2 个答案:

答案 0 :(得分:5)

这可以做到:

queryParam

这会修改$service->setConfig([ 'unauthenticatedRedirect' => '/users/login', 'queryParam' => 'redirect', ]); ,因为import random arr1d = arr.ravel() randidx = random.sample(range(len(arr1d)), 5) arr1d[randidx] = 0 返回的是视图,而不是副本。

有关如何生成随机数的更多信息,请参见:Non-repetitive random number in numpy

答案 1 :(得分:-1)

让我们说您的矩阵是“矩阵”

import random
for i in range(5):
    random1=random.randint(0,size_x_ofmatrix)
    random2=random.randint(0,size_y_ofmatrix)
    matrix[random1,random2]=0