1. numpy 在带有切片的运算时不会自动转换数据类型
1 import numpy as np 2 3 im_data = np.ones([2, 3, 4], dtype=np.int) 4 print(im_data) 5 im_data[0, :, :] = im_data[0, :, :] * 255 / 1313 6 im_data[1, :, :] = im_data[1, :, :] * 255 / 1299 7 print(im_data)
运算完后im_data全为0
[[[1 1 1 1] [1 1 1 1] [1 1 1 1]] [[1 1 1 1] [1 1 1 1] [1 1 1 1]]] [[[0 0 0 0] [0 0 0 0] [0 0 0 0]] [[0 0 0 0] [0 0 0 0] [0 0 0 0]]]
2.在对整个numpy数组进行运算时会自动转换数据类型
1 import numpy as np 2 3 im_data = np.ones([2, 3, 4], dtype=np.int) 4 print(im_data) 5 im_data = im_data * 255 / 1313 6 print(im_data)
输出结果转换为了float
[[[1 1 1 1] [1 1 1 1] [1 1 1 1]] [[1 1 1 1] [1 1 1 1] [1 1 1 1]]] [[[0.19421173 0.19421173 0.19421173 0.19421173] [0.19421173 0.19421173 0.19421173 0.19421173] [0.19421173 0.19421173 0.19421173 0.19421173]] [[0.19421173 0.19421173 0.19421173 0.19421173] [0.19421173 0.19421173 0.19421173 0.19421173] [0.19421173 0.19421173 0.19421173 0.19421173]]]