【问题标题】:Convert Numpy array into Orange table of discrete values将 Numpy 数组转换为离散值的橙色表
【发布时间】:2014-06-07 08:07:58
【问题描述】:

我的问题正是标题所说的:我有一个 numpy 整数数组,并希望将其转换为具有离散值的橙色表。如果我按照这些步骤操作,它会失败:

import numpy as np
import Orange
a = np.arange(100).reshape((10,10)).astype(np.int8)
fields = ('one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten')
d = Orange.data.Domain([Orange.feature.Discrete(x) for x in fields])
t = Orange.data.Table(d, a)

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-230-f9b4755dcfba> in <module>()
----> 1 t = Orange.data.Table(d, a)

ValueError: Invalid value for a Discrete variable.

我不希望使用中间物理文件(老实说,我尝试通过 cStringIO.StringIO 使用“虚拟”文件,但我无法将其作为参数正确传递给 Orange.data.Table(),因为它需要文件名,而不是文件)。

我可以做些什么来实现它(除了中间物理文件,这是一种明显但不优雅的解决方案)?

PS 我也尝试过将 numpy 数组重新整形为字符串,但它通过给出错误:

AttributeError: Converting arrays of type 'S' is not supported (use one of 'bBhHiIlLfdc')

【问题讨论】:

  • 参考函数series2descriptorhere

标签: python arrays numpy orange


【解决方案1】:

您可以将您的数组映射到一个文件,然后让橙色读取您的 mmap 文件。或者,您可能有一些运气将您的 np 数组转换为 python 数组,然后从橙色读取它。

【讨论】:

  • Claris,感谢您的回答,但它非常抽象。您能否通过为每个备选方案举例说明您的 cmets?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-08
  • 1970-01-01
  • 2019-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多