두 개의 다른 배열로 구성된 numpy 배열을 원합니다 (각각 다른 모양을 가짐). 아시다시피, 이런 이유 때문에 메인 어레이의 정의에 dtype = object
을 사용해야합니다.다른 모양의 요소가있는 numpy.array
예를 들어, 우리가이 완벽하게 작동
a0 = np.arange(2*2).reshape(2,2)
a1 = np.arange(3*3*2).reshape(3,3,2)
b = np.array([a0,a1], dtype = object)
로 (파이썬 2.7에서) 우리의 배열을 정의 할 수 있습니다 : b[1]
는 a1
과 동일합니다. I가 (2,2)에서 a0
의 차원을 변경한다면 이상한 (3,3) 일이 발생합니다
a0 = np.arange(3*3).reshape(3,3)
a1 = np.arange(3*3*2).reshape(3,3,2)
b = np.array([a0,a1], dtype = object)
b[1]
및 a1
가 동일하지이 시간, 그들은 심지어 다른 모양을 가지고있다. 이 이상한 행동의 이유는 무엇입니까?
아마 나를위한 완전히 다른 해결책이 있습니다. 그러나 나는 목록이나 튜플을 사용하고 싶지 않다. 왜냐하면 나는 b + b
과 같은 추가를 허용하기를 원하기 때문이다. 이 목적을 위해 자신 만의 클래스를 작성할 수는 있지만, 더 간단한 방법이 있습니까?
예에서 전체 배열'x'에 대해 산술 연산을 수행 할 수 없습니다. 예를 들어'x + x'는 작동하지 않습니다. – cheyp
네, 할 수 있습니다! 내가 말했던 것처럼 모든 요소 0..4를 채워야합니다 (처음 두 개만 예를 든다). – mdurant