값 목록 또는 숫자 배열에서 값을 numpy 배열로 효율적으로 변환하고 싶습니다. 음수 값은 새 배열에서 0이되어야하고 양수 값 a 1. 나는이 목록에 수레가있는 경우numpy.clip을 사용하여 양수 및 음수 값을 비트 문자열로 변환
예를 들면, 그러나
>> import numpy as np
>> np.clip([1,2,3,-1,-2], a_min=0, a_max=1)
array([1, 1, 1, 0, 0])
,이 방법은 그들을 그대로 유지 :이 동작을 우회하는 좋은 방법이
>> np.clip([1,0.45,3,-1,-2], a_min=0, a_max=1)
array([ 1. , 0.45, 1. , 0. , 0. ])
있습니까? 한 가지 방법은 값을 반올림하는 것입니다. 그러나 나는 긍정적 인 모든 것을 원할 것입니다. np.around()
을 사용한다면 0.45 -> 0 일 것입니다.
니스, 감사합니다! StackOverflow 날 수 있습니다 때이 대답을 받아 들일 것입니다! – Sebastian
퍼포먼스가 문제가된다면,'(a> 0) .astype ('i1')'은'np.where (a> 0, 1, 0)'보다 훨씬 빠르다는 것에주의하십시오. 그 차이는 어레이가 커질수록 커집니다. 나는 길이가 100 인 어레이의 경우 2 배 정도 빠르며 길이가 10k 인 어레이의 경우 10 배 더 빠릅니다. –
메모 @ LogerFan 주셔서 감사합니다. – Sebastian