파이썬에서 숫자는 chained comparison이 되는데 numpy.ndarray는 안된다. 게으른 파이썬 녹화하다가 즉흥적으로 궁금해져서 해봤는데 막혀서 당황했다. 의미적으로는 되어야 할 것 같은데 왜 막아놨지? 궁금해졌다. 챗gpt한테 물어봤으나 뻘소리만 해대길래 검색해봤다. 검색어는 "ndarray chained comparison". 어떤 stackoverflow의 답변을 요약해보면, • PEP 535에서 제안되었으나 연기되어 있는 상태임• 파이썬에서 아래 코드는2 • 아래와 같이 해석됨2 • 논리 연산자 and는 피연산자에 bool을 입힘• 그런데 ndarray는 요소가 2개 이상이면 bool을 입히지 못함 (왜 못하게 해놨지?) • 여튼 해결책으로 bitwise or인 &를 쓰..
본 글은 요약본입니다. 전문은 여기를 클릭! NumPy가 리스트보다 빠른 이유는? 1. 원소의 타입 Array의 원소로 정수 하나를 저장하려고 합니다. NumPy array의 경우 정수는 내장 자료형인 int로 저장되지 않습니다. 대신 binary로 변환 후 int32(4 byte)로 캐스팅 되어 저장됩니다. 숫자가 작아서 1 byte만 필요하다면 1 byte로 변환도 할 수 있습니다. 이 경우에는 정수 하나를 저장하는 데에 딱 1 byte만 필요하겠죠. 반면 리스트에 들어가는 정수는 내장 자료형 int 타입으로 저장됩니다. 이 int 타입 하나를 저장하려면 다음 것들이 모두 필요합니다. 1) Size (4 byte) 2) Reference Count (8 byte) 3) Object Type (8 by..