PTVS和numpy System.Int64投射中的numpy 64bit支持

时间:2012-02-07 19:41:22

标签: .net numpy 64-bit ironpython scipy

我正在尝试使用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 for IronPython不兼容64位吗?

我正在研究的根本问题(可能与上述有关或可能没有关系)涉及调用需要System.Int64作为参数的.NET程序集方法。 python native 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数组转换为32位以下的System.Array [Int64]或有关IronPython上numpy 64位支持状态的评论的任何建议吗?

1 个答案:

答案 0 :(得分:0)

我需要的是:

listValues.tolist() instead of list(listValues)

list()方法将保持每个元素都被包装。这个论坛帖子有我想要的答案:http://www.python-forum.org/pythonforum/viewtopic.php?f=3&t=2962&p=12102

我仍然对64位numpy支持感到好奇吗?