-2

python 新手,想知道是否可以使用 python 和 numpy 完成上述操作。我有一个大小为 10 的数组,我想将 6 个随机值从它们的当前值更改为我设置的其他值。有没有办法在 numpy 中做到这一点?

4

2 回答 2

0

例如,你有一个arr大小为 z 的 numpy 数组,你想将 x 值随机更改为 y,你可以试试这个:

index = np.random.choice(z, x, replace=False)
arr[index] = y

随机选择参考:https ://docs.scipy.org/doc/numpy/reference/generated/numpy.random.choice.html#numpy.random.choice

于 2020-02-12T13:37:28.190 回答
0

python's random module provides a method sample. By taking a random sample of the indices of your array you have a list of what to replace...

import numpy as np
import random

def randomReplace(arr,n,newValue):
    indicies = random.sample(range(0,len(arr)),n)
    for k in indicies:
        arr[k] = newValue

arr = np.random.rand(10)
print(arr)
arr2 = randomReplace(arr,6,1)
print(arr)
于 2020-02-12T13:23:42.590 回答