numpy数组上的减法不起作用

时间:2018-03-25 05:17:42

标签: python numpy numpy-ndarray

我有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的新手。

1 个答案:

答案 0 :(得分:1)

这是一个四维数组的事实不是重点。

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

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

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