今天刚发现对多维numpy数组使用random.shuffle存在一些问题
# 把mask为0的值改为2 tmp_mask = (mask == 0).astype(np.int64) * 2 + mask # 把tmp_mask上对应image值为-32767的点置为0 tmp_mask = np.where(tmp_image != -32767, tmp_mask, np.zeros_like(tmp_mask)) # 边缘切割1个像素使图像为整数 image = image[:, :1200, :1200, :] mask = mask[:, :1200, :1200] tmp_image = tmp_image[:, :1200, :1200] tmp_mask = tmp_mask[:, :1200, :1200] random.seed(628) random.shuffle(image) random.seed(628) random.shuffle(mask) random.seed(628) random.shuffle(tmp_image) random.seed(628) random.shuffle(tmp_mask) random.seed(628) random.shuffle(filenames_array)
在random.shuffle之前
在random.shuffle之后
可见random.shuffle直接作用于多维numpy数组并不会只打乱第一维数据(具体怎么打乱目前尚不清楚,请高人指点)