여기에 한 가지 방법
In [2]: a[:, -1] = a[:, -1] > 0
In [3]: a
Out[3]:
array([[ 0.15293227, -1.50167614, 0. ],
[ 1.25396778, 0.21520081, 1. ],
[-1.1272423 , 1.18971277, 1. ]])
이며 부정적인 항목이 0으로 설정하는 것을 원하지 않는 경우, 여기에 익살 대안 : 귀하의 코멘트에 대한 응답으로
In [4]: a[:, -1] = a[:, -1] ** (a[:, -1] < 0)
In [5]: a
Out[5]:
array([[ 0.15293227, -1.50167614, -1.04974543],
[ 1.25396778, 0.21520081, 1. ],
[-1.1272423 , 1.18971277, 1. ]])
, 음수 항목 만 남겨두고 양수 항목에 삽입 할 사용자 정의 부동 소수점 값을 설정한다고 가정 해 봅시다.
In [6]: float_to_insert_at_positives = 3.14159
In [7]: (float_to_insert_at_positives - a[:, -1]) * (a[:, -1] > 0) + a[:, -1]
Out[7]: array([-1.04974543, 3.14159 , 3.14159 ])
In [8]: a[:, -1] = (float_to_insert_at_positives - a[:, -1]) * (a[:, -1] > 0) +
... a[:, -1]
In [9]: a
Out[9]:
array([[ 0.15293227, -1.50167614, -1.04974543],
[ 1.25396778, 0.21520081, 3.14159 ],
[-1.1272423 , 1.18971277, 3.14159 ]])
고맙습니다. '**'연산자는 무엇을 하는가? – user14492
'**'연산자의 왼쪽 인수가 NumPy'ndarray' 인 경우,'**'는 왼쪽 배열의 각 요소를 오른쪽 배열의 해당 요소에 의해 주어진 힘으로 올리는 것을 의미합니다 (또는 스칼라 지수 값만 주어진다면 모든 것을 같은 힘으로 올리십시오). 일반 Python에서'** '는 숫자 형에 대한 지수화를 의미합니다. '2 ** 3'은 두 개의 삼원 모양입니다. – ely
아하이 봐요. 그래서 두번째 방법은'x ** 0 == 1 '이기 때문에 그것들을 1로 설정하면됩니다. 다른 플로트로 설정할 수있는 방법이 있습니까? – user14492