25

我对 python 有点陌生,我在另一个程序(ABAQUS)中使用 python 模块。然而,这个问题完全与 python 相关。

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

“ABAQUS 接口仅支持 INT、FLOAT 和 DOUBLE(如果标准 long 是 64 位,则使用类型码为 int 的多数组)”

我不需要 ABAQUS 的帮助。如果我在 python 中将数据类型转换为“int”,这就足够了。我以为我可以简单地使用 int() 函数来转换数据类型。这没有用。任何建议将不胜感激。谢谢你们。

4

5 回答 5

25

numpy.ndarray.tolist会这样做:

a.tolist()

如果您的数据是 pandas 系列,您可以使用相同的结果调用他们的tolist包装器。

于 2020-04-16T18:49:51.570 回答
22

@JF 塞巴斯蒂安的回答:

a.astype(numpy.int32)
于 2015-02-13T15:05:56.730 回答
2

使用对象item()方法numpy.int64,正如Mike T在另一个类似问题中的回答所解释的那样。

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

于 2018-03-23T03:05:22.607 回答
0

最后,如果您使用 numpy 将 int64 值列表转换为 int,您将获得一个 numpy 值(int64、int32 等)。如果你想要一个常规的 int(不是 numpy int),我找到了一种可行的方法。您将其转换为字符串,然后转换为列表!请享用...

import ast

a = ast.literal_eval(str(a))
于 2022-01-19T11:33:27.737 回答
-5

如果是pandas系列,可以先转换成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
于 2018-05-10T09:30:17.227 回答