numpy获取每列的dtype

我需要获取每个列的类型以正确对其进行预处理.

目前,我通过以下方法执行此操作:

import pandas as pd

# input is of type List[List[any]]
# but has one type (int, float, str, bool) per column

df = pd.DataFrame(input, columns=key_labels)
column_types = dict(df.dtypes)
matrix = df.values

由于我只使用pandas获取dtypes(每列),而使用numpy进行其他所有操作,因此我想从项目中删除pandas.

总结:有没有一种方法可以从numpy获取每列的(特定)dtypes

或:是否有一种快速方法来重新计算ndarray的dtype(在拼接矩阵之后)

解决方法:

Is there a way to obtain (specific) dtypes per column from numpy

不,没有.由于您的数据框具有混合类型,因此NumPy dtype将成为对象.这样的数组不存储在连续的存储块中,每列具有固定的dtype.相反,2d数组中的每个值都包含一个指针.

您的问题与询问是否可以在此列表列表中获取每个“列”的类型没有什么不同:

L = [[0.5, True, 'hello'], [1.25, False, 'test']]

由于指针集合中的数据没有列结构,因此没有“ column dtype”的概念.您可以测试每个子列表中特定索引的每个值的类型.但这打败了Pandas / NumPy的观点.

上一篇:python-从lxml.objectify.IntElement获取str或int


下一篇:Java-JAXB绑定排除字段