为了账号安全,请及时绑定邮箱和手机立即绑定

为 np.array 分配较大的值

为 np.array 分配较大的值

桃花长相依 2023-10-26 17:05:12
我尝试用 1.0/875713 替换数组内的所有 0 值。但我的代码不起作用,所以只是想知道这是由于类型大小限制以及如何解决这个问题?value = 1.0/875713print(value)arr = np.array([1,2,3,0,3,0,0,0,2,3,4,5])arr[arr == 0] = valueprint(arr)1.14192663578e-06[1 2 3 0 3 0 0 0 2 3 4 5]期待结果[1 2 3 1.14192663578e-06 3 1.14192663578e-06 1.14192663578e-06 1.14192663578e-06 2 3 4 5]
查看完整描述

1 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

Numpy 数组有一个类型。

在您的代码中,如果您输入arr.dtype,结果将是dtype('int32')

为了达到你的目标,你应该arr = arr.astype('float32')在运行之前运行arr[arr == 0] = value,然后你会得到预期的输出。


查看完整回答
反对 回复 2023-10-26
  • 1 回答
  • 0 关注
  • 122 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信