私はscipyスパース行列data
と削除するdata
の行にcorrupsonds整数n
を持っています。この行を削除するには、私はこれを試してみました:scipyマトリックスから行を削除
data = sparse.csr_matrix(np.delete(np.array(data),n, axis=0))
しかし、これはこのエラーを生成:
Traceback (most recent call last):
File "...", line 260, in <module>
X_labeled = sparse.csr_matrix(np.delete(np.array(X_labeled),n, axis=0))
File "/anaconda3/lib/python3.6/site-packages/scipy/sparse/compressed.py", line 79, in __init__
self._set_self(self.__class__(coo_matrix(arg1, dtype=dtype)))
File "/anaconda3/lib/python3.6/site-packages/scipy/sparse/coo.py", line 177, in __init__
self.row, self.col = M.nonzero()
SystemError: <built-in method nonzero of numpy.ndarray object at 0x113c883f0> returned a result with an error set
私が実行します。
data = np.delete(data.toarray(),n, axis=0)
私はこのエラーを取得する:
Traceback (most recent call last):
File "...", line 261, in <module>
X_labeled = np.delete(X_labeled.toarray(),n, axis=0)
File "/anaconda3/lib/python3.6/site-packages/numpy/lib/function_base.py", line 4839, in delete
"size %i" % (obj, axis, N))
IndexError: index 86 is out of bounds for axis 0 with size 4
実行したとき:
print(type(data))
print(data.shape)
print(data.toarray().shape)
私はこれを取得:
<class 'scipy.sparse.csr.csr_matrix'>
(4, 2740)
(4, 2740)
あなたのデータは何のように見えるん:
ブールマスクを作りますか?この簡単なデータで行を実行すると、 'data = np.array([1,2,3,4,5,6])'となります。 –
疎な行列を密度の高い配列にする正しい方法は 'data.toarray()'です。 – hpaulj
削除したい行インデックス以外のすべての行インデックスで 'data'をインデックス化してみませんか? – hpaulj