如何解决TypeError:不能将序列乘以'float'类型的非int

时间:2014-04-25 00:06:57

标签: python floating-point

我的问题似乎是许多人经常提出的问题。

我可能会错过一些东西,但相关主题中建议的大多数解决方案似乎都没有效果。

我的目的只是将我曾经做过的一系列数字和列表相乘。

之前我还没有看到过类型错误。

以下是我的代码:

while c1 < 95:
    c1 = c1 + 1
    a1 = []

    f1.seek(0,0)
    arrays1 = [map(float, line.split()) for line in f1]
    newa1 = [x[5:] for x in arrays1]


    a1 = newa1[c1]
    x1 = np.array(a1, float)
    x1 = np.ma.masked_array(x1,np.isnan(x1))

    xa1 = [i for i in x1 if i>=3.5 or i<=13.]

    print xa1

    p1 = 0.95*0.90*0.5*0.4*1.03*5027.*xa1^3

因为我的数据有很多nan值,所以我在这段代码中使用了masked array。但是,无论是使用原始数据,屏蔽数组还是忽略nan值,结果误差都是相同的。

如果你们有任何想法,我真的很感激。

谢谢,

艾萨克

1 个答案:

答案 0 :(得分:1)

p1 = xa1**3 * 0.95*0.90*0.5*0.4*1.03*5027.

你需要先让你的阵列(也许......(实际上我不认为这是真的)) 同样提到的**是你在python中的权力