python-3.x - Numpy:改变一个数组的元素值,有点奇怪
问题描述
我创建了三个数组 com、mask、r1,并且我希望更改 r1[mask] 中的元素值以进行以下测试:
com = np.ones([8,8],dtype = np.int)
np.fill_diagonal(com, 0)
com[0:3,0:3] = 0
replace_rate = 0.1
mask = np.random.choice([0,1],size=(com.shape),p=((1-replace_rate),replace_rate)).astype(np.bool)
r1 = np.random.rand(*com.shape)*np.max(com)
r1[mask][1]= 0.3
print(r1[mask][1])
print(type(r1[mask]))
print(r1[mask],r1.dtype,'r1mask' )
我的问题是为什么我不能像往常一样为 r1[mask] 的元素赋值我得到 r1[mask] 的结果,例如:
[0.84356101 0.61487372 0.94783953 0.07359154] float64 r1mask
其中第二个元素不会更改为 0.3。我怎样才能改变价值?先感谢您
解决方案
推荐阅读
- excel - 从excel中的日期单元格中提取字符
- python - 在 Django 项目中为可重用应用程序创建基于类的 Celery 任务
- javascript - 如何仅使用 Javascript 动态创建带有上一个和下一个按钮的图像视频缩略图滑块?
- javascript - .modal-content 用于不同的模态(react-bootstrap)
- android - Android(Firestore):无法在 Firestore 中已创建的文档中添加、更新或设置(SetOptions.merge)字段
- sql - 转换失败的 varchar 值
- python - 如何使用 result.fit_report() 给出的值?
- vue.js - 在 Vue Good Table 中格式化输出行数据
- c# - 全球秒表 WPF - 如何/为什么这不起作用
- angular - 无法导航到同级路由器