【问题标题】:numpy, array arithmetic shows invalid syntax after iterating over said arraynumpy,数组算术在迭代所述数组后显示无效语法
【发布时间】:2021-02-04 19:05:12
【问题描述】:

我正在尝试编写这个为内核卷积创建内核的函数。

我将结果从范围 -1,1 转换为范围 0,1

def generate(phaseX, freqX, phaseY, freqY, shape):
    img = numpy.full(shape, 0.5, dtype=numpy.float32)

    for x in range(shape[0]):
        for y in range(shape[0]):
            img[x,y] *= numpy.cos(x*freqX+phaseX) * (numpy.cos(y*freqY+phaseY)

    img = (img*0.5)+0.5
    return img

这里出现错误:

   File "c:\Users\martin\Documents\rt3s\dct.py", line 40
    img = (img*0.5)+0.5
    ^
SyntaxError: invalid syntax

当我删除 for 循环时,错误消失了。

我认为迭代以某种方式改变了类型,但我从未遇到过这个问题,我不知道如何去调查正在发生的事情。 话虽如此,这里发生了什么?

【问题讨论】:

  • 像往常一样,您缺少括号。 (另外,您发布的错误消息不能来自您发布的代码。)
  • @user2357112supportsMonica 啊我错过了,这解释了 lmao,是的,我使用了最小的代码显示错误,但忘记复制错误消息,我的错.

标签: python syntax-error numpy-ndarray


【解决方案1】:

问题是由多余的括号引起的, 删除它已解决问题。

for x in range(shape[0]):
    for y in range(shape[0]):
        img[x,y] *= numpy.cos(x*freqX+phaseX) * numpy.cos(y*freqY+phaseY)

【讨论】:

    猜你喜欢
    • 2021-05-11
    • 2021-03-07
    • 1970-01-01
    • 1970-01-01
    • 2015-06-12
    • 2020-10-05
    • 2018-11-05
    • 2013-01-04
    • 2013-05-05
    相关资源
    最近更新 更多