나는 numpy 배열을 압축하는 효율적인 방법을 찾고있다. 다음과 같은 배열이 있습니다 : dtype=[(name, (np.str_,8), (job, (np.str_,8), (income, np.uint32)]
(내가 가장 좋아하는 예제).numpy 배열 (파이썬)을 압축하는 효율적인 방법
내가 다음과 같이하면 : my_array.compress(my_array['income'] > 10000)
수입이 10000 이상인 새 배열을 얻고 있습니다.
그러나 목록의 작업을 필터링하고 싶다면 작동하지 않습니다!
my__array.compress(m_y_array['job'] in ['this', 'that'])
오류 :
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
그래서 나는 이런 식으로 뭔가를해야 :
np.array([x for x in my_array if x['job'] in ['this', 'that'])
이 추악하고 비효율적입니다!
효율적인 아이디어가 있습니까?
는 는
내가 알 수있는 한, 아래의 모든 솔루션에는 마스크의 배열 복사본이 포함됩니다. 그래서 그들 중 누구도 정말 효율적인 IMHO가 아닙니다. – g33kz0r