python:将numpy数组数据类型从int64转换为int

时间:2012-09-28 23:36:36

标签: python types

我对python有点新,我在另一个程序(ABAQUS)中使用python模块。但问题是完全与python相关。

在程序中,我需要创建一个整数数组。该数组稍后将用作ABAQUS中定义的函数的输入。问题是整数的数据类型。在数组中,整数的数据类型为“int64”。但是,当我将数组输入到所需的函数时,我收到以下错误:

  

“ABAQUS接口仅支持INT,FLOAT和DOUBLE(如果标准长度为64位,则使用带有typecode int的多阵列)”

我不需要ABAQUS的帮助。如果我在python中将数据类型转换为'int',那就足够了。我以为我可以简单地使用int()函数来转换数据类型。这没用。任何建议将受到高度赞赏。谢谢大家。

4 个答案:

答案 0 :(得分:10)

@ J.F。塞巴斯蒂安回答:

a.astype(numpy.int32)

答案 1 :(得分:9)

numpy.ndarray.tolist会做到:

a.tolist()

如果您的数据是熊猫系列,则可以调用具有相同结果的tolist包装器。

答案 2 :(得分:0)

item()对象使用numpy.int64方法,在另一个类似问题中使用Mike T's answer

官方文档在这里:https://docs.scipy.org/doc/numpy-dev/reference/generated/numpy.chararray.item.html#numpy.chararray.item

答案 3 :(得分:-4)

如果它是熊猫系列,你可以先将其转换为Dataframe,然后使用df.to_dict(),然后将numpy.int64转换为int

In [1]: import pandas as pd

In [2]: import numpy as np

In [3]: df = pd.DataFrame(np.random.randint(5,size=(3,4)),
index=np.arange(3))

In [4]: type(df[0][0])

Out[4]: numpy.int64

In [5]: dict_of_df = df.to_dict()

In [6]: type(dict_of_df[0][0])

Out[6]: int