numpy 数组的减法不起作用

Subtraction on numpy array not working

我有一个4D numpy array。我正在尝试标准化它的值,因为我需要从中减去一些值,但操作是添加值。

请帮忙

print(X_train.shape)
print(X_train[0][0][0])
print(X_train[0][0][0]-128)

它的输出是:

(34799, 32, 32, 3)

[28 25 24]

[156 153 152]

不应该吗?

[-100,-103,-102]

请让我知道我做错了什么。 我是 numpy.

的新手

它是一个 4 维数组这一事实并不是这里的重点。

猜测 你的问题出在那个 numpy 数组的 data type 上。例如,如果它是 numpy.uint8(无符号字节,即只允许 [0,255] 中的值),那么从 28 中减去 128 将得到 156...:)

尝试:print (X_train.dtype) 查看与您的 numpy 数组关联的数据类型。

如果是这种情况,请考虑将其转换为其他数据类型,例如X_train = X_train.astype(numpy.int16),或简单地 numpy.int8,具体取决于您对数据的期望。