2017-09-21 30 views
-1

私が作成したnumpy配列の標準偏差を計算しようとしています。 df3をdf2配列に追加しようとするとループに問題が発生します。Python Numpy経由で追加する

b = np.random.randint(30, 100, size=(10,20)) 
import numpy as np 
df2 = np.empty 
df3 = np.empty 
index = 0 
for i in b: 
    df1 = b[index,:] 
    df2 = df1.std() 
    df3 = df3.append(df2) 
    index = index + 1 

答えて

0

それがゼロの配列を初期化するのではなく、中のアレイに追加する実際の方法より効率的です:私は入れませんエラーが

「『builtin_function_or_method』オブジェクトが属性を持っていない 『を追加』はAttributeError」でありますループ。それが絶対に必要でない限り、私はいつもそれをやることを避けるでしょう。

出力のサイズを知っているので、ゼロ配列を簡単に初期化できます。

import numpy as np 

b = np.random.randint(30, 100, size=(10,20)) 
stds = np.zeros(10) 
for i in range(b.shape[0]): 
    row = b[i,:] 
    stds[i] = row.std() 

実際、あなたはそれをする必要はありません。さらに良いのはnp.apply_along_axisです。

def get_std(arr): 
    return arr.std() 

stds = np.apply_along_axis(get_std, 1, b) 

これはあなたに何をしているのですか?

関連する問題