먼저 단순한 예 print(np.bmat(e.tolist()))
또는 print(np.bmat([[a,b],[c,d]]))
결과와 정확히 동일효율적
[[ 1. 1. 2. 2.]
[ 1. 1. 2. 2.]
[ 3. 3. 4. 4.]
[ 3. 3. 4. 4.]]
생산
import numpy as np
a = np.ones((2,2))
b = 2*np.ones((2,2))
c = 3*np.ones((2,2))
d = 4*np.ones((2,2))
e = np.array([[a,b],[c,d]])
print(np.vstack(np.array([np.hstack(e[i,:]) for i in range(2)])))
(2D NumPy와 배열의 NumPy와 어레이로부터 블록 NumPy와 배열을 만들기 np.bmat
은 캐스팅 할 수있는 numpy 행렬을 만듭니다 (np.asarray()
사용).
그러나 제 문제는 36 개의 큰 숫자 배열을 만드는 코드입니다. (당분간은 400 개 정도 될 것입니다) 2D numpy 배열과 하나의 큰 블록 배열을 만들고 싶습니다. 그들에게서. 이 작업을 효율적으로 수행하고 가능한 경우리스트와 numpy 배열 사이의 변환을 피하는 것이 더 큰 루프 구성의 일부이므로 여러 번 수행됩니다 (배열은 매번 다릅니다). 그게 가능하니?
좋습니다. 어쩌면 명확하지 않을 수 있습니다. 실제로, 간단한 예를 들어 이것은 작동합니다. 하지만 내 진짜 문제는 2D numpy 배열의 큰 numpy 배열을 만들고 목록으로 변환하지 않으려는 것입니다. – ThunderBiggi
36 개의 배열이 있다면 아마도 o/p 배열을 초기화 한 다음 반복적으로 이해하는 것이 좋습니다 o/p 배열로 슬라이스하고 과제를 수행 하시겠습니까? – Divakar
나는 당신이 의미하는 것을 이해하지 못합니다. 배열 수는 가까운 미래에 증가 할 계획 인 매개 변수의 함수이므로 완전 자동이어야합니다. – ThunderBiggi