Python中的函数调用错误

2024-09-30 00:30:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个1D数组X和两个+/-元素。我把他们的信号隔离如下:

idxN, idxP = X<0, X>=0

现在我想创建一个数组,它的值取决于X的符号。我试图计算它,但它给出了标题语法错误。你知道吗

y(idxN) = [math.log(1+np.exp(x)) for x in X(idxN)]
y(idxP) = X(idxP)+[math.log(np.exp(-x)+1) for x in X(idxP)];

LHS任务是罪魁祸首吗?你知道吗

谢谢。你知道吗

[编辑]完整代码如下:

y = np.zeros(X.shape)
idxN, idxP = X<0, X>=0
y(idxN) = [math.log(1+np.exp(x)) for x in X(idxN)]
y(idxP) = X(idxP)+[math.log(np.exp(-x)+1) for x in X(idxP)];
return y

回溯是:

y(idxN) = [math.log(1+np.exp(x)) for x in X(idxN)]
  File "<ipython-input-63-9a4488f04660>", line 1
    y(idxN) = [math.log(1+np.exp(x)) for x in X(idxN)]
                                                      ^
SyntaxError: can't assign to function call

Tags: inlog元素编辑标题for信号np
2条回答

我让它这样工作:

y = np.zeros(X.shape)
idxN, idxP = X<0, X>=0
yn,yp,xn,xp = y[idxN], y[idxP],X[idxN],X[idxP]
yn = [math.log(1+np.exp(x)) for x in xn]
yp = xp+[math.log(np.exp(-x)+1) for x in xp];

如果有更好的办法,请告诉我。谢谢。你知道吗

在一些编程语言如Matlab中,索引是带括号的引用。在Python中,索引用方括号表示。你知道吗

如果我有一个列表mylist = [1,2,3,4],我引用如下元素:

> mylist[1]
  2

如果你说y(idxN),Python认为你试图把idxN作为参数传递给一个名为y的函数。你知道吗

相关问题 更多 >

    热门问题