【问题标题】:I got a TypeError: only length-1 arrays can be converted to Python scalars我得到了一个 TypeError:只有长度为 1 的数组可以转换为 Python 标量
【发布时间】:2017-02-21 12:13:37
【问题描述】:

我收到以下错误消息。我在 Stack Overflow 上发现了一些问题,我尝试了他们的解决方案,但没有奏效。

import numpy as np

R=0.9999 #Reflectivity

a=np.arange(0,100000,1,dtype=np.complex)
b=R**(a)
c=np.exp(np.complex(0,a))

错误:

c=np.exp(np.complex(0,a))

TypeError: 只有长度为 1 的数组可以转换为 Python 标量

【问题讨论】:

    标签: numpy typeerror


    【解决方案1】:

    错误在 np.complex(0,a) 中。它不期望 'a' 是一个数组。比较:

    c = np.exp(np.complex(0,a[0])). 
    

    既然a已经是复数数组了,不能直接计算吗? (虽然这将导致 inf+0.j 给定指数的大小)

    c = np.exp(a)
    

    【讨论】:

    • 我想让 'c' 成为像 'b' 这样的新数组。当然,我可以计算建议的代码。
    • c = np.exp(a) 返回一个与 b 长度相同的数组 :)
    猜你喜欢
    • 1970-01-01
    • 2014-09-27
    • 2013-03-15
    • 1970-01-01
    • 2016-08-06
    • 2018-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多