TypeError with ufunc bitwise_xor

In my program that tracks the particle path, I get the following error:

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'' 

I can not find what is happening. I have no xor instances (although I assume that it can be encoded in an if / else statement).

+7
python numpy if-statement typeerror
source share
1 answer

In the violation line, you use ^ if you want ** raise the value to power. Python interprets this as xor:

 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]]) 

See:

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

+18
source share

All Articles