2016-09-22 1 views
0

나는 양의 데이터, 음의 데이터 및 0을 갖는 큰 배열이 있습니다. 0을 양수로 간주하는 현재 값의 부호가있는 배열로 변환하고 싶습니다. numpy.sign을 사용하면 현재 값이 0 인 경우 0을 반환하지만 대신 1을 반환하는 값이 필요합니다. 이 작업을 수행하는 쉬운 방법이 있습니까?숫자가 작은 배열을 부호가 0 인 배열로 변환합니다.

+0

'2 * (x> = 0) .astype (int) - 1' –

+0

빙고! 고마워요! 나는 파이톤이 논리적 인 색인을 가지고 있다는 것을 몰랐다. – CSforStructuralEngineer

+0

OK, 대답하겠습니다. –

답변

1

x이 배열 인 경우 2*(x >= 0) - 1을 사용할 수 있습니다.

x >= 0은 부울 값 (즉, FalseTrue)의 배열이되지만,이 값으로 산술하면 0과 1의 배열로 효과적으로 캐스팅됩니다.

np.sign(x) + (x == 0) 할 수도 있습니다. (np.sign(x)x이 정수 배열 인 경우에도 부동 소수점 값을 반환합니다.)

관련 문제