2

私は次のことをする必要があります

b = numpy.random.randn(50001,2)

cof = numpy.corrcoef(b)

c= b>=0.3 

return np.dot(c, np.ones([50001,1]))

セグメンテーション違反が発生しています。

また、たとえば疎行列を使用しようとすると、次のようになります。

asp = scipy.sparse.csc_matrix(c)

セグメンテーション違反が発生する

行列のサイズが小さい場合、変換は機能します。

何かアドバイス?

4

1 に答える 1

1

50001次元空間の2つのサンプルまたは2D空間の50001サンプル間の相関を計算しようとしていますか?

現在の状況では、暗黙の50001 x 50001共分散行列を作成しています(これにより、セグメンテーション違反が発生します)。次のことをしてもメモリが爆発することはありません

b = numpy.random.randn(2,50001)
cof = numpy.corrcoef(b)

うまくいけば、これが必要なものです(他の方法では、共分散行列とセグメンテーション違反の近似が非常に悪くなります)。

于 2012-09-17T13:00:54.390 に答える