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

 

posted on 2021-11-23 12:09  zmbreathing  阅读(226)  评论(0编辑  收藏  举报