You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

解决Python代码中‘numpy.float64’无append属性报错问题

修复‘numpy.float64’ object has no attribute ‘append’错误

错误原因

你初始化了列表P = []用来存储结果,但在内部循环中,错误地将同一个变量名P赋值为计算得到的浮点数(P = 3.14 / (...)),导致P的类型从列表变成了numpy.float64。后续调用P.append(PwD)时自然报错,因为浮点数对象没有append方法。

修复后的代码

将内部循环里的变量名P改为其他名称(比如p_val),避免覆盖外部的结果列表P:

import math
import plotly.express as px
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import pylab as ax
import xlsxwriter

FcD = 10.0     
RcD = 100000.0 
w = 500.0      
Lam = 0.002     
xeD =2.0       
yeD = 1.0     
wD = 0.0002    
noD = 1*10**(-6) 
nfD = 1000.0     

P = []
TD = []
for i in range(-8, 9, 1):
    for tD in np.arange(1.0 * 10**(i),9.7 * 10**(i),1.0 * 10**(i)):
        Pd = []
        for j in range(1,11,1):
            s = j * np.log(2.0) / tD   # s is Laplace operator 
            u = s * (1+(Lam * w / (3 * s))**(0.5) * np.tanh((3 * s * w / Lam)**(0.5)))
            Bo = (s / noD)**(0.5) * np.tanh((s / noD) * (xeD - 1))
            Ao = Bo / (RcD * yeD) + u
            Bf = (Ao)**(0.5) * np.tanh((Ao)**(0.5) * (yeD - wD / 2))
            Af = 2 * Bf / FcD + s / nfD
            # 修改变量名,避免覆盖外部列表P
            p_val = 3.14 / (FcD * s * (Af)**(0.5) * np.tanh((Af)**(0.5)))
            Pd.append(p_val)
        PDd = np.array([Pd])
        PD = PDd.flatten()
        v = np.array([0.0833333, -32.083333, 1279, -15623.667, 84244.1667, -236957.5, 375911.667, -340071.67, 164062.5, -32812.5])
        PwD = np.log(2) / tD * np.dot(v, PD)
        P.append(PwD)

# 导出结果到Excel(可选)
df = pd.DataFrame({'PwD': P})
df.to_excel('calculation_results.xlsx', index=False, engine='xlsxwriter')

补充说明

修复后,外部的P始终保持列表类型,可以正常调用append方法存储PwD结果。如果需要导出到Excel,可使用示例中的pandasto_excel方法完成操作。

内容的提问来源于stack exchange,提问作者Salam Jabbar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 15:55:18