Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何解决';不可变的DensendiMarray';对象没有属性';能否提取负号';?_Python_Python 3.x - Fatal编程技术网

Python 如何解决';不可变的DensendiMarray';对象没有属性';能否提取负号';?

Python 如何解决';不可变的DensendiMarray';对象没有属性';能否提取负号';?,python,python-3.x,Python,Python 3.x,首先,我不熟悉编码 我试图用Python模拟源代码流。但是我犯了一个错误。我如何解决它?以下是我的代码和错误: 代码 import numpy as nm from matplotlib import pyplot from sympy import * import math as math X,Y=symbols('X Y') N=50 x_start,x_end=-2,2 y_start,y_end=-1,1 x=nm.linspace(x_start,x_end,N) y=nm.lins

首先,我不熟悉编码

我试图用Python模拟源代码流。但是我犯了一个错误。我如何解决它?以下是我的代码和错误:

代码

import numpy as nm
from matplotlib import pyplot
from sympy import *
import math as math
X,Y=symbols('X Y')
N=50
x_start,x_end=-2,2
y_start,y_end=-1,1
x=nm.linspace(x_start,x_end,N)
y=nm.linspace(y_start,y_end,N)
X,Y=nm.meshgrid(x,y)
width=10.0
height=width*((y_end-y_start)/(x_end-x_start))
pyplot.figure(figsize=(width,height))
pyplot.xlabel("X")
pyplot.ylabel("Y")
strength_source=10
x_source,y_source=-0.5,-0.25
q=(Y - y_source)/(X - x_source)
u_source = (strength_source / (2 * math.pi) * diff(atan(q),Y))
v_source = (strength_source / (2 * math.pi) * diff(atan(q),X))
pyplot.scatter(x_source,y_source)
pyplot.streamplot(X,Y,u_source,v_source,density=1, linewidth=1,
arrowsize=2, arrowstyle='->')
错误:

文件“F:\Anaconda\lib\site packages\sympy\functions\elementary\trigonal.py”,第2298行,在eval中
如果参数可以提取负号():
AttributeError:“ImmutableDenseNDimArray”对象没有属性“无法提取负号”

问题出在函数参数“atan”中。此函数只接受一个参数x并返回x的反正切。您的代码正在向函数传递一个向量。尝试创建具有计算的切线弧的点列表。诸如此类:

array_resul_atan = []
for i in range(len(q)):
    atan_q = []
    for j in range(len(q[i])):
        atan_q.append(atan(q[i][j]))
    array_resul_atan.append(atan_q)

array_resul_atan = np.asarray(array_resul_atan, dtype='float')
类似地,diff函数仅将一个数组作为参数。您的代码正在传递两个数组。我的建议是回顾这个公式,寻找更好的方法来区分


希望这有帮助。

您应该包括完整的回溯。现在,我们不知道您的代码的哪一行抛出了错误/异常。我们所知道的是symphy\functions\elementary\trigonomic.py的2298行不喜欢您给出的内容。也就是说,symphy中有一个悬而未决的问题,可能对您的问题有线索: