3

文字列「long」を含む変数があります。この文字列から long に相当する型を持つ numpy dtype オブジェクトを作成するにはどうすればよいですか? 多くの数字と対応するタイプを含むファイルがあります。等は問題ありませんが、動かないだけintです。私のコードでは、いくつかの置換などをハードコーディングしたくありません。floatlonglong -> int32

>>> np.dtype('long')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: data type not understood

また: 純粋な python で文字列から変数型を作成する方法はありますか? int.__name__つまり、型名を文字列に変換するの逆が必要です。

4

1 に答える 1

5

この特定のケースでは、モジュール自体getattrから取得するために使用できると思います。numpy

>>> import numpy as np
>>> np.dtype('long')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: data type not understood

しかし:

>>> getattr(np, 'long')
<type 'long'>
>>> np.dtype(getattr(np, 'long'))
dtype('int64')
>>> np.dtype(getattr(np, 'int'))
dtype('int32')
>>> np.dtype(getattr(np, 'float64'))
dtype('float64')
>>> np.dtype(getattr(np, 'float'))
dtype('float64')
于 2012-08-31T14:29:37.230 に答える