Python通过Numpy追加

时间:2017-09-21 00:10:03

标签: arrays python-3.x numpy

我正在尝试计算我制作的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

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)

这能否为您提供以后的服务?