4

ここに私の2D numpy配列があります:

returns = np.array([
 [ -4.78878057e-03   9.79090927e-03  -2.06883581e-03  -1.25786164e-02]
 [  5.79128440e-03  -2.85791008e-03   1.69555388e-03  -5.63798220e-02]
 [  5.73427375e-05   2.45043133e-02   8.55025651e-03  -4.53257790e-02]
 [  6.75441635e-03   8.70168484e-03   1.07547532e-02  -1.36919315e-01]
 [  6.68332655e-03   6.76498174e-03   3.08225775e-03   0.00000000e+00]])

そして、各列の STD を計算しようとすると、次のようになります。

print np.std(returns, axis=1)

次のエラーが表示されます。

ValueError: 'axis' entry is out of bounds

どうすれば修正できますか?

4

4 に答える 4

4

配列が 2 次元配列クエリであるかどうかを確認しますa.ndim。オブジェクトの 1 次元配列を印刷すると 2 次元配列のように見える場合があります。この場合、次のようにして 2 次元配列に変換できます。

a = np.array(list(a))

また

a = np.array(tuple(a))
于 2013-10-24T18:28:25.660 に答える
0

マイケル、

なぜあなたが問題を抱えているのかわかりません。2D 配列を定義する方法が原因である可能性があります (それは私の唯一の推測です)。次のコードを使用しましたが、正しく動作します。

import numpy as np

arr = np.array([                                                                \
[ -4.78878057e-03,   9.79090927e-03,  -2.06883581e-03,  -1.25786164e-02],       \
[  5.79128440e-03,  -2.85791008e-03,   1.69555388e-03,  -5.63798220e-02],       \
[  5.73427375e-05,   2.45043133e-02,   8.55025651e-03,  -4.53257790e-02],       \
[  6.75441635e-03,   8.70168484e-03,   1.07547532e-02,  -1.36919315e-01],       \
[  6.68332655e-03,   6.76498174e-03,   3.08225775e-03,   0.00000000e+00]        \
])

std = np.std(arr,axis=1)
print std

答えは次のようになります。

[ 0.00803178  0.02526721  0.02593599  0.06308687  0.00281146]
于 2013-10-24T18:14:06.253 に答える