我正在尝试计算我制作的numpy数组的标准偏差。当我尝试将df3附加到df2数组时,我在循环中遇到问题。我一直得到的错误是
" AttributeError:' builtin_function_or_method'对象没有属性'追加' "
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 :(得分:0)
初始化零数组实际上更有效,而不是在循环中附加到数组。除非绝对必要,否则我会一直避免这样做。
由于您知道输出的大小,因此可以非常容易地初始化零数组。
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)
这能否为您提供以后的服务?