Python不能用'float'类型的非int乘序列

2024-03-29 10:43:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试计算公式,npnumpy

Ds = pow(10,5)
D = np.linspace(0, pow(10,6), 100)
alpha=1.44
beta=0.44
A=alpha*(D/Ds)
L=1.65
buf2=L/4.343
buf=pow(-(alpha*[D/Ds]),beta)
value=exp(buf)

然后我将绘制这些数据,但是我得到:

buf=pow(-(alpha*[D/Ds]),beta)
TypeError: can't multiply sequence by non-int of type 'float'

我怎样才能克服这一点?


Tags: 数据alphanumpyvaluenpds绘制can
1条回答
网友
1楼 · 发布于 2024-03-29 10:43:37

更改:

buf=pow(-(alpha*[D/Ds]),beta)

致:

buf=pow(-(alpha*(D/Ds)),beta)

这:

[D/Ds]

为您提供包含一个元素的列表。

但是这个:

alpha * (D/Ds)

计算与alpha相乘之前的除法。

您可以将列表乘以整数:

>>> [1] * 4
[1, 1, 1, 1]

但不是用浮子:

[1] * 4.0
TypeError: can't multiply sequence by non-int of type 'float'

因为列表中不能有部分元素。

括号可用于数学计算中的分组:

>>> (1 + 2) * 4
12

相关问题 更多 >