numpy.unique不会给出预期的输出
问题描述:
我有一个numpy数组。当我用这种方式打印时,numpy.unique不会给出预期的输出
print len(numpy.unique(all_data[:, 3]).astype(int))
我得到6278.但是,当我打印的最小和与numpy.amax和numpy.amin同一阵列的最大INT值;
print numpy.amax(numpy.unique(all_data[:, 3]).astype(int))
print numpy.amin(numpy.unique(all_data[:, 3]).astype(int))
我得到286和0.在0和286之间是否可以有6278个唯一值?当然不是!
我该如何获得唯一值的数量?
感谢,
答
您应该使用astype(int)
调用独特之前,而不是之后。
这是不相同的(唯一应用到原始数据类型):
print numpy.amax(numpy.unique(all_data[:, 3]).astype(int))
print numpy.amin(numpy.unique(all_data[:, 3]).astype(int))
,因为这(独特的应用到整数):
print numpy.amax(numpy.unique(all_data[:, 3].astype(int)))
print numpy.amin(numpy.unique(all_data[:, 3].astype(int)))
注意:注意怎样在后者as type
应用以前:all_data[:, 3].astype(int)
调用独特