我有一个多维数组,其中包含需要标准化为0-1范围的灰度整数值。 更准确地说,所讨论的多维数组是一个数组,其中每个元素都包含表示特定图像的矩阵,并且这些矩阵(图像)中的每个矩阵(图像)都包含图像的像素,其整数值在0-255之间
以下是标准化函数:
def normalize(x, mmin=0.0, mmax=255.0):
x = (x - mmin )/(mmax - mmin + 10**(-5))
return x
右:在主模块中,我以以下方式应用该功能:
trainingSet_Images = myUtils.normalize(trainingSet_Images)
结果是一个带有浮点值的矩阵数组
错误:但以这种方式应用normalize()
函数:
for i in range(len(trainingSet_Images)):
trainingSet_Images[i] = myUtils.normalize(trainingSet_Images[i])
训练集图像的所有元素都是一个具有零值的整数矩阵
Python似乎记住了原始类型的矩阵——但为什么第一种赋值方法有效而第二种方法无效
这是因为,通过像在第二个方法中那样重新分配给数组,执行规范化(将是一个
float
)得到的dtype
会向下转换到数组dtpye
,因此它会被覆盖文件的Assigning values to indexed arrays部分提到了这一点,其中指出:
下面是一个从应用
normalize
函数的结果返回的示例:而在第二种方法中:
如果您执行以下操作,则同样适用:
相关问题 更多 >
编程相关推荐