2
我有一個scipy稀疏矩陣(csr:壓縮稀疏行矩陣)。我想使用Orange的功能選擇方法(Orange.feature.scoring.score_all(InfoGain/MDL))。然而,從我的理解,我將不得不創建一個表只接受一個numpy數組作爲參數。因此,每當我試圖把企業社會責任矩陣轉換爲數組,使用(.toarray()),我得到以下錯誤(因爲矩陣的大小):如何解決ValueError:數組太大的錯誤?
Traceback (most recent call last):
File "C:\Users\NMS\Desktop\PyExp\experiments_acl2013.py", line 249, in <module>
print(X_train.toarray())
File "C:\Python27\lib\site-packages\scipy\sparse\compressed.py", line 561, in toarray
return self.tocoo(copy=False).toarray(order=order, out=out)
File "C:\Python27\lib\site-packages\scipy\sparse\coo.py", line 238, in toarray
B = self._process_toarray_args(order, out)
File "C:\Python27\lib\site-packages\scipy\sparse\base.py", line 635, in _process_toarray_args
return np.zeros(self.shape, dtype=self.dtype, order=order)
ValueError: array is too big.
是否有另一種方法,可以讓我通過一個稀疏矩陣來創建一個表? 或 有沒有辦法在Orange中應用InfoGain或MDL,而不直接使用我的稀疏矩陣創建表格?
傳遞MEMMAP表時,我收到以下錯誤:
>>> t2 = Table(d2, mm)
Traceback (most recent call last):
File "<pyshell#125>", line 1, in <module>
t2 = Table(d2, mm)
TypeError: invalid arguments
當經過MEMMAP出域,我得到以下幾點:
>>> mm
memmap([[0, 1, 2, 4],
[9, 8, 6, 3]])
>>> t2 = Table(mm)
Traceback (most recent call last):
File "<pyshell#128>", line 1, in <module>
t2 = Table(mm)
TypeError: invalid arguments for constructor (domain or examples or both expected)
我需要一個numpy數組傳遞給T能夠(Domain,Numpy_array)創建表。 – user2179347
我猜你可以通過memmap數組,我試過了嗎? –
我已將我的memmap通過試用版從[文檔](http://orange.biolab.si/docs/latest/reference/rst/Orange.data.table/#Orange.data)添加到 – user2179347