Python 将大值赋给np.array
我尝试用1.0/875713替换数组中的所有0值。但我的代码不起作用,所以我想知道这是由于类型大小的限制,以及如何解决这个问题Python 将大值赋给np.array,python,python-3.x,python-requests,Python,Python 3.x,Python Requests,我尝试用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 2 3 1.14192663578e-06 3 1.14192663578e-06 1.14192663578e-06 1.14192663
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 2 3 1.14192663578e-06 3 1.14192663578e-06 1.14192663578e-06 1.14192663578e-06 2 3 4 5]
Numpy数组有一个类型。你可以从中了解更多 在代码中,如果键入
arr.dtype
,结果将是dtype('int32')
为了达到您的目标,您应该在运行
arr[arr==0]=value
之前运行arr=arr.astype('float32')
,然后您将获得预期的输出。Numpy array有一个类型。你可以从中了解更多
在代码中,如果键入arr.dtype
,结果将是dtype('int32')
为了达到您的目标,您应该在运行arr[arr==0]=value
之前运行arr=arr.astype('float32')
,然后您将获得预期的输出
[1 2 3 1.14192663578e-06 3 1.14192663578e-06 1.14192663578e-06 1.14192663578e-06 2 3 4 5]