带有 ufunc bitwise_xor 的 TypeError

Posted

技术标签:

【中文标题】带有 ufunc bitwise_xor 的 TypeError【英文标题】:TypeError with ufunc bitwise_xor 【发布时间】:2014-05-08 15:47:35 【问题描述】:

在我的跟踪粒子路径的程序中,出现以下错误:

Traceback (most recent call last):
  File "C:\Users\Felix\Google Drive\Research\particles.py", line 154, in <module>
    bfield += b_X(r_p(r,pos[2]))*(r_p(r,pos[2])/r)   
   *((r-r_p(r,pos[2]))**2+pos[2]**2)^(-1/2)*np.array
   ([(1-r_p(r,pos[2])/r)*pos[0],(1-r_p(r,pos[2])/r)*pos[1],pos[2]])

TypeError: ufunc 'bitwise_xor' not supported for the input types, 
and the inputs could not be safely coerced to any supported types 
according to the casting rule ''safe''

我似乎无法找到发生了什么。我没有任何 xor 实例(尽管我想它可能被编码在 if/else 语句中)。

【问题讨论】:

【参考方案1】:

使用 ** 而不是 ^ 在 python 中将值提升到幂。

【讨论】:

【参考方案2】:

在违规行中,当您希望 ** 将值提升到幂时,您正在使用 ^。 Python 将其解释为异或:

bfield += b_X(r_p(r,pos[2]))*(r_p(r,pos[2])/r)*((r-r_p(r,pos[2]))**2+
        pos[2]**2)^(-1/2)*np.array([(1-r_p(r,pos[2])/r)*pos[0],
        (1-r_p(r,pos[2])/r)*pos[1],pos[2]])

见:

http://docs.python.org/2/reference/expressions.html#binary-bitwise-operations

【讨论】:

以上是关于带有 ufunc bitwise_xor 的 TypeError的主要内容,如果未能解决你的问题,请参考以下文章

输入类型不支持 ufunc 'isnan'

Python Numpy TypeError:输入类型不支持ufunc'isfinite'

TypeError:输入类型不支持 ufunc 'isnan' - seaborn Heatmap

尝试集成函数给出“ufunc 循环不支持符号类型的参数 0”

在使用所有可能的预测变量拟合模型时,它会抛出此错误 TypeError: ufunc 'isfinite' not supported

为啥numpy在尝试预测回归时会引发异常错误:“ufunc'add'没有包含具有签名匹配类型的循环”?