6
2次元のnumpy配列の標準偏差を計算しようとすると、非常に珍しいエラーが見つかりました。基本的に、私はこれをやっている:単純な標準偏差を計算するときの "AttributeError:sqrt"
次のエラー与えnp.std(myarray, axis=1)
:ライン105で
/home/user/env/local/lib/python2.7/site-packages/numpy/core/fromnumeric.pyc in std(a, axis, dtype, out, ddof, keepdims)
2588
2589 return _methods._std(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
-> 2590 keepdims=keepdims)
2591
2592 def var(a, axis=None, dtype=None, out=None, ddof=0,
/home/user/env/local/lib/python2.7/site-packages/numpy/core/_methods.pyc in _std(a, axis, dtype, out, ddof, keepdims)
103
104 if isinstance(ret, mu.ndarray):
--> 105 ret = um.sqrt(ret, out=ret)
106 else:
107 ret = um.sqrt(ret)
AttributeError: sqrt
を、RETは、以下のように定義される。
array([0.0757800982464383, 0.6065241443345735, 0.3162436337971689,
0.025387106329804794, 0.023465650294750118, 0.,
0.03686346121524665, 0.456152653196993, 0.15598749370862977,
0.0041977155187445945, 0.018816207536006213, 0.018011541017004237,
0.01046808236307669, 0.0037176987848958156, 0.004346127061033225,
0.06885161954332783, 0.004758430435294487, 0.010064124660786879,
0.08732648466448349, 0.14957009536890314, 0.007277246755033778,
0.0043521569980290355, 0.010174973078043143, 0.33905025844712544,
0.7960121881423348], dtype=object)
type(myarray): <type 'numpy.ndarray'>
repr(myarray): array([[1.2258313, 1.2258313, 1.3756552, 1.1849703, 1.334794, 1.1849703,
1.1441092, 1.334794, 1.3075534, 1.2258313, 1.3756552, 0.95342433,
1.1441092, 1.0760075, 1.1168685, 1.1168685, 1.334794, 0.8036005,
0.46309182, 0.3405087],
[1.3756552, 0.95342433, 1.1441092, 1.0760075, 1.1168685, 1.1168685,
1.334794, 0.8036005, 0.46309182, 0.3405087, 0.313268, 0.38136974,
0.27240697, 0.38136974, -1.8387468999999996, -0.50395286,
-0.14982383, -0.46309182, -0.3405087, -0.19068487],...
購入私はできませんその配列に何か問題があります。 np.sumとnp.meanは正しく動作します。
このエラーの原因は何ですか?
これはnumpyののバージョンは何ですか? – user2357112
「myarray」とは何ですか? – lpapp
@LaszloPapp myarrayは形状の2次元配列です(25、20)。ただし、さまざまな形状のランダムな配列をテストしていますが、np.stdが正しく機能します。 –