IronPythonでコードを記述しようとしていて、.NETアセンブリを呼び出すnumpyがあります。 バージョン情報: numpyの-2.0.0-1 scipyのダウンロード-1.0.0-2 IronPythonの2.7.1PTVSとnumpyでnumpy 64bitサポートSystem.Int64 casting
私はここに与えられた指示に従ってscipyのダウンロードとnumpyのをインストール:
http://www.enthought.com/repo/.iron/
私がipy64.exeを実行しようとすると、次のような結果になります。
Failed while initializing NpyCoreApi: BadImageFormatException:An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000
B)
NumpyDotNet stack trace:
at NumpyDotNet.NpyCoreApi.GetNativeTypeInfo(Int32& intSize, Int32& longsize, Int32& longLongSize, Int32& longDoubleSize)
at NumpyDotNet.NpyCoreApi..cctor()
すべてがipy.exeで動作します。 IronPythonのnumpyの現在のバージョンは64ビット互換ではありませんか?
私が調査している根本的な問題は、System.Int64を引数として必要とする.NETアセンブリメソッドを呼び出すことです。 Pythonのネイティブintは正常に動作しますが、(ipy.exe下)numpy.int32を呼び出す際に、暗黙的なキャストがで失敗します。
E
======================================================================
ERROR: data_type_tests
System.Array[Int64](listValues)
TypeError: expected Int64, got numpy.int32
私が実行していたコードです:
values = array([1,2,3,4,5])
listValues = list(values);
System.Array[Int64](listValues)
私が作る場合直接のリスト、すなわちvalues = [1,2,3,4,5] の場合は、上記が実行されます。
numpyの配列を32ビットでSystem.Array [Int64]に変換する際の提案や、IronPythonのnumpy 64ビットのサポートについてのコメントはありますか?私は必要なもの
もっと具体的には:numpy配列型を、 numpy.int32>要素の代わりに要素を含むpythonリストにキャストする方法は、私が思っています(基本int型は上記のapiで動作するためです)。私はこの変換をパフォーマンス上のやり方でしたいと思っています。手動ですべての要素を反復し、 'ToInt64'などを呼び出すのは無駄に思えます。 –
この投稿が関連しているかどうか不思議です:http://comments.gmane.org/gmane.comp.python.numeric.general/46855 –