Numpy运算符不起作用

时间:2014-11-13 01:49:10

标签: python numpy

首先:我不确定"操作数"是正确的词。我的意思是像< > = in if / then / else。 (编辑:是运营商)

在我的代码的非函数部分,我想切断一个正弦函数并将值设置为剪切的边框:

from numpy import *
x = arange(-15, 15, 1)
y = 12.5*sin(2*pi/3.8*x+pi/2)

for i in y:
    print(y[i])
    if y[i] > 2.5:
        print(y[i])
        y[i] = 2.5

但是python并不总是这样做。我得到了什么:

11.8227155213
11.8227155213
-8.46601964532
-5.02119280816
-8.46601964532
-10.9934218901
6.83685197653
6.83685197653
2.5
-10.9934218901
-8.46601964532
-5.02119280816
-8.46601964532
-10.9934218901
6.83685197653
6.83685197653
3.06856858926
3.06856858926
-5.02119280816
3.06856858926
3.06856858926
-5.02119280816
2.5
-10.9934218901
2.5
-8.46601964532
-5.02119280816
-10.9934218901
-10.9934218901
2.5
2.5
-10.9934218901
-8.46601964532
-5.02119280816
-8.46601964532

对我而言6.8368 ..大于2.5。 如果我以较小的步数计算,它会继续。 这是一项如此简单的任务,所以我的错在哪里?

1 个答案:

答案 0 :(得分:0)

您正在使用

for i in y:

但是y包含一堆浮点数,所以y [i]可能不是你想要的那样

for i, _ in enumerate(y):

另一个不错的选择是

y = minimum(y,2.5)