为 np.array 分配较大的值

我尝试用 1.0/875713 替换数组内的所有 0 值。但我的代码不起作用,所以只是想知道这是由于类型大小限制以及如何解决这个问题?


value = 1.0/875713

print(value)

arr = np.array([1,2,3,0,3,0,0,0,2,3,4,5])

arr[arr == 0] = value

print(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]


桃花长相依
浏览 123回答 1
1回答

泛舟湖上清波郎朗

Numpy 数组有一个类型。在您的代码中,如果您输入arr.dtype,结果将是dtype('int32')为了达到你的目标,你应该arr = arr.astype('float32')在运行之前运行arr[arr == 0] = value,然后你会得到预期的输出。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python