我有一个方形的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
或其他一些
我该如何有效地做到这一点?
答案 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