TypeError: only length-1 arrays can be converted to Python scalars with NUMPY

前端 未结 2 1824
-上瘾入骨i
-上瘾入骨i 2021-01-14 15:30
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt 
import numpy as np 
import math


#task 2e

x = np.linspace(-0.0001,0.1,50) 

#constants
e0=8.85*10 ** (-12)         


        
相关标签:
2条回答
  • 2021-01-14 15:55

    Use numpy.sqrt rather than math.sqrt. numpy.sqrt expects a scalar or array as input, on the other hand math.sqrt can only handle scalars.

    >>> import numpy as np
    >>> import math
    >>> a = np.arange(5)
    >>> np.sqrt(a)
    array([ 0.        ,  1.        ,  1.41421356,  1.73205081,  2.        ])
    #error
    >>> math.sqrt(a)
    Traceback (most recent call last):
      File "<ipython-input-78-c7d50051514f>", line 1, in <module>
        math.sqrt(a)
    TypeError: only length-1 arrays can be converted to Python scalars
    
    >>> 
    
    0 讨论(0)
  • 2021-01-14 16:12

    use np instead of math.sqrt

    v=(Q/((4*math.pi*e0)*(np.sqrt((x**2+r0**2)))))
    
    
    v2=v+(Q2/((4*math.pi*e0)*(np.sqrt(((x-2)**2+r2**2)))))
    
    0 讨论(0)
提交回复
热议问题