私の問題はまさにタイトルのとおりです。整数のnumpy配列があり、それを離散値を持つOrangeテーブルに変換したいと考えています。次の手順に従うと、失敗します。
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() の引数として正しく渡すことができませんでした。ファイルではなく、ファイル名)。
それを達成するために私ができることはありますか(明白ではあるがエレガントではないソリューションの1つである中間物理ファイルとは別に)?
PS私はnumpy配列を文字列に再形成しようとしましたが、次のようにするとエラーになります:
AttributeError: Converting arrays of type 'S' is not supported (use one of 'bBhHiIlLfdc')