python – 返回类型numpy.minimum()?

当我在布尔数组上使用numpy函数minimum()和maximum()时,结果的类型打印为numpy.int32.但是,与numpy.int32类型的比较失败(即使在强制转换后).这是一个错误吗?

g = np.ones((5, 5), dtype = np.bool)
h = np.maximum(g, 4)
i = np.int32(h)

print 'type of g ', g.dtype.type   # prints <type 'numpy.bool_'>
print 'type of h ', h.dtype.type   # prints <type 'numpy.int32'>
print 'type of i ', i.dtype.type   # prints <type 'numpy.int32'>

print h.dtype.type == i.dtype.type # prints True
print h.dtype.type == np.int32     # prints False
print i.dtype.type == np.int32     # prints False
print i.dtype.type == np.bool_     # prints False

最佳答案 对我来说似乎很正常.使用np.maximum返回g和4的最大值,即4(True == 1).你得到一个四分之一的矩阵,它是整数类型.

如果您使用此语法进行类型比较,则它们可以工作:h.dtype.type == np.dtype(np.int32)或更简单地说h.dtype == np.int32.

点赞