2014-11-13 2 views
0

우선 : "피연산자"가 올바른 단어인지 확실하지 않습니다. 나는 <> = if/then/else와 같은 것을 의미합니다. Numpy 연산자가 작동하지 않습니다.

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 

하지만 파이썬 것은 단지 아무튼 : 내 코드의 비 기능 부분에서

(편집 오퍼레이터이다), 나는 사인 함수를 잘라 절단의 경계 값을 설정하려면 항상 그렇게하지 마십시오. 내가 얻는 것 :

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보다 크다. 작은 단계로 계산하면 계속됩니다. 그런 간단한 작업이므로 내 잘못은 어디에 있습니까?

+0

'>','<', 등등은 * 연산자 에스*. 피연산자는 이러한 기호에 대한 "인수"입니다. 예를 들어, 표현식 '2> 1'에서'> '는 연산자이고'2 '와'1 '은 피연산자입니다. – iCodez

+0

'numpy import * '를 사용하면 이름 충돌을 일으킬 수 있으므로 사용하는 것보다 더 많이 가져올 수 있습니다. numpy로 작업 할 때'numpy as np'가 표준으로 보인다. – IanAuld

답변

0

당신이

for i, _ in enumerate(y): 

또 다른 좋은 옵션을 시도 원하는 것을 아마 당신은

for i in y: 

를 사용하고 있지만, Y는 수레의 무리, 그래서 Y [I]를 포함 은이다.

y = minimum(y,2.5) 
+0

아 .. 나는 이것을 전에 보았다. 그것은 그것을 해결해야한다. 그러나 지식을 위해서 : 정확히 무엇을 통해 나의 기능을 반복합니까? 왜냐하면 어떤 값들은 작동하기 때문입니다. – X4fyr

관련 문제