为什么我没有得到任何标准差?我想有一个标准差的列表[重复]。

问题描述 投票:0回答:1

我的目标是有一个数据的标准偏差列表。我在 trainx 中有 13 列(特征),trainy 数组中有三个标签(1,2,3),分别对应 trainx 的每一行。我的目的是要找到一个标准差最小的特征。

我想先计算标签1的每个特征的标准差,将其追加到一个列表中,然后将找到最小标准差。我试着写了下面的代码块,但目前还没有成功。

a=[]
for i in range(0,13):
    b=[np.std(trainx[trainy==1,i])]
    print(a.append(b))

它返回的是这样的结果:

None
None
None
None
None
None
None
None
None
None
None
None
None

如果我试着写下面的代码:

a=[]
for i in range(0,13):
    b=[np.std(trainx[trainy==1,i])]
    a=a.append(b)
print(a)

它返回:

AttributeError                            Traceback (most recent call last)
<ipython-input-78-6b02e93115a0> in <module>
      3 for i in range(0,13):
      4     b=[np.std(trainx[trainy==1,i])]
----> 5     a=a.append(b)
      6 print(a)

AttributeError: 'NoneType' object has no attribute 'append'

请帮助我。也欢迎其他方法。

python list numpy for-loop
1个回答
2
投票

list.append 不返回 list. 它只将对象附加到 list. 要想在追加后获得列表,只需访问列表即可。

a=[]
for i in range(0,13):
    b=[np.std(trainx[trainy==1,i])]
    a.append(b)
    print(a)
© www.soinside.com 2019 - 2024. All rights reserved.