【发布时间】:2020-09-01 10:33:22
【问题描述】:
我有一个包含字符串和整数列的数据表,例如:
test_data = [('A',1,2,3),('B',4,5,6),('A',1,2,3)]
我需要唯一的行,因此我使用了 numpy 唯一函数:
summary, repeat = np.unique(test_data,return_counts=True, axis=0)
但在那之后我的数据类型发生了变化。总结是:
array([['A', '1', '2', '3'],
['B', '4', '5', '6']], dtype='<U1')
所有数据类型现在都是字符串。我怎样才能防止这种变化? (Python 3.7,numpy 1.16.4)
【问题讨论】:
-
您不能在一个数组中存储多种不同的数据类型。 ut 由于所有这些都可以是字符,python 将自动假定 char 并转换它们。如果你将它们分开存储,你会从整数中得到一个整数数组。
-
@jaSnom 不完全是“char”,但是是的,差不多
-
@juanpa.arrivillaga 是的,你是对的。在我的工作中同时使用 java nad python 有时会让我把它们混为一谈。
-
@juanpa.arrivillaga。从技术上讲,您可以使用带有元组的重新数组或对象数组
-
@MadPhysicist 当然,但从技术上讲,它们仍在存储同质数据类型、结构化数据类型或对象 :)