поддержка numpy 64bit в PTVS и приведения numpy System.Int64 - PullRequest
2 голосов
/ 07 февраля 2012

Я пытаюсь написать код для IronPython и numpy, который вызывает сборку .NET. Информация о версии: NumPy-2.0.0-1 SciPy-1.0.0-2 IronPython 2.7.1

Я установил 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. Текущая версия numpy для IronPython не совместима с 64-битной версией?

Основная проблема, которую я изучаю (может быть связана или не связана с вышеупомянутой), заключается в вызове метода сборки .NET, для которого в качестве аргумента требуется System.Int64. Нативный Python int работает нормально, но при вызове с numpy.int32 (под ipy.exe) неявное приведение завершается неудачно с:

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)

Если я составлю список напрямую, то есть значения = [1,2,3,4,5] тогда вышеописанное работает.

Какие-либо предложения по преобразованию массива numpy в System.Array [Int64] под 32-битным или комментарии о состоянии поддержки numpy 64-бит в IronPython?

1 Ответ

0 голосов
/ 08 февраля 2012

Что мне нужно было:

listValues.tolist() instead of list(listValues)

Метод list () будет держать каждый элемент в оболочке. В этом сообщении на форуме был ответ, который я искал: http://www.python -forum.org / pythonforum / viewtopic.php? F = 3 & t = 2962 & p = 12102

Мне все еще интересно узнать о поддержке 64-битного numpy?

...