python使用如下方法规范化数组_如何规范化4D numpy数组?

我们沿着哪个轴取最小值和最大值?

为了回答这个问题,我们可能需要更多关于您的数据的信息,但是一般来说,当讨论3通道图像时,例如,我们将使用每通道最小值和最大值进行规格化。这意味着我们将执行规格化3次-每通道一次。

下面是一个例子:img = numpy.random.randint(0, 100, size=(10, 10, 3)) # Generating some random numbers

img = img.astype(numpy.float32) # converting array of ints to floats

img_a = img[:, :, 0]

img_b = img[:, :, 1]

img_c = img[:, :, 2] # Extracting single channels from 3 channel image

# The above code could also be replaced with cv2.split(img) << which will return 3 numpy arrays (using opencv)

# normalizing per channel data:

img_a = (img_a - numpy.min(img_a)) / (numpy.max(img_a) - numpy.min(img_a))

img_b = (img_b - numpy.min(img_b)) / (numpy.max(img_b) - numpy.min(img_b))

img_c = (img_c - numpy.min(img_c)) / (numpy.max(img_c) - numpy.min(img_c))

# putting the 3 channels back together:

img_norm = numpy.empty((10, 10, 3), dtype=numpy.float32)

img_norm[:, :, 0] = img_a

img_norm[:, :, 1] = img_b

img_norm[:, :, 2] = img_c

编辑:我刚刚想到,一旦你有了单通道数据(例如32x32图像),你就可以简单地使用:from sklearn.preprocessing import normalize

img_a_norm = normalize(img_a)如何使用3D阵列?

嗯,这是个大问题。如果您需要像array wise min和max这样的函数,我将使用Numpy版本。例如,索引是通过轴宽分隔符来实现的—正如您在上面的示例中所看到的。

另外,请参考Numpy关于ndarray@https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.html的文档

去了解更多。他们真的有一套很好的n维数组工具。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值