如何将随机值设置为值非常低的2d-numpy-array?

时间:2019-04-18 09:57:53

标签: python arrays numpy

我有一个2d-numpy数组(28x28),想为所有小于50的索引设置随机值。我尝试了一些方法:

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<div>
     <h4>Liniensicherungen</h4>
     <div class="form-group ">
          <label for="cbxGrundliniensicherung" class="col-sm-6 col-form-label">Mit Grundliniensicherung:</label>
               <div class="col-sm-6 paddingRadioBtn">
                    <input type="checkbox" class="form-control"aria-label="Text input with checkbox"  name="cb_mit_grund_liniensicherung_runs_show" id="cbxGrundliniensicherung">
          </div>
     <div>
<div>
<div class="custom-control custom-checkbox">
  <input type="checkbox" class="custom-control-input" id="customCheck1">
  <label class="custom-control-label" for="customCheck1">Check this custom checkbox</label>
</div>

这不能正常工作,因为所有选定的索引都获得相同的随机值。 我想使用不同的随机值。

myarray[myarray < 50] = random.randint(80,100)

上面的代码正在解决问题,但是我认为它不能有效地工作,因为对于大型数据集,它变得非常慢。

还有更好的功能吗?

1 个答案:

答案 0 :(得分:1)

首先,使用np.random.uniform代替。参见Generate random array of floats between a range

然后

myarray[myarray < 50] = np.random.uniform(low=80, high=100,
       size=myarray[myarray < 50].shape)