将选择的整数值分配给 0 和 1 以外的布尔值中的 True / False 值
Assign integer value of choice to True / False values in a boolean other than 0 and 1
是否可以将默认值 1 和 0 以外的整数/浮点值分配给数组中的布尔值 True 和 False?
据我所知,默认情况下 True 转换为 1,False 转换为 0。但是,当我尝试从二维数组 dtype=bool 将 '5.0' 分配给 True 时,输出仍然给出 True 而不是分配的整数值
#main_arr is a 3d array
main_arr = self.predictor(image)["instances"].pred_masks
#Taking the slice from 3d array based on 1st dimension
arr = np.asarray(main_arr[0,:,:])
#finding the non zero elements
row, col = np.nonzero(arr)
#assigning values to non zero elements
arr[row, col] = 5.0
print("The Non Zero value of element is :", arr[row[0]][col[0]])
输出仍然是True
The Non Zero value of element is : True
而我希望看到类似
的内容
The Non Zero value of element is : 5.0
由于 arr
的 dtype
是布尔值,当您在该数组中进行赋值时,它会被转换为匹配 dtype
。您需要一个具有适当 dtype
的数组来执行此操作:
arr = arr.astype(np.float64)
arr[row, col] = 5.0
是否可以将默认值 1 和 0 以外的整数/浮点值分配给数组中的布尔值 True 和 False?
据我所知,默认情况下 True 转换为 1,False 转换为 0。但是,当我尝试从二维数组 dtype=bool 将 '5.0' 分配给 True 时,输出仍然给出 True 而不是分配的整数值
#main_arr is a 3d array
main_arr = self.predictor(image)["instances"].pred_masks
#Taking the slice from 3d array based on 1st dimension
arr = np.asarray(main_arr[0,:,:])
#finding the non zero elements
row, col = np.nonzero(arr)
#assigning values to non zero elements
arr[row, col] = 5.0
print("The Non Zero value of element is :", arr[row[0]][col[0]])
输出仍然是True
The Non Zero value of element is : True
而我希望看到类似
的内容The Non Zero value of element is : 5.0
由于 arr
的 dtype
是布尔值,当您在该数组中进行赋值时,它会被转换为匹配 dtype
。您需要一个具有适当 dtype
的数组来执行此操作:
arr = arr.astype(np.float64)
arr[row, col] = 5.0