이를 broadcasting을 사용하면 상당히 간단합니다. 예를 들어
:
당신의 배열이 호환 모양의 경우, 일반적으로, 좋은 방법의 모든 축을 따라 작업을 적용 할 것입니다 무엇을 방송
>>> import numpy as np
>>> dx = np.array([[1], [2], [3]])
>>> dx
array([[1],
[2],
[3]])
>>> dx * np.arange(4)
array([[0, 1, 2, 3],
[0, 2, 4, 6],
[0, 3, 6, 9]])
>>> x = np.array([[10], [10], [10]])
>>> x - dx * np.arange(4)
array([[10, 9, 8, 7],
[10, 8, 6, 4],
[10, 7, 4, 1]])
.
>>> dx * np.arange(4)
array([[0, 1, 2, 3],
[0, 2, 4, 6],
[0, 3, 6, 9]])
NumPy와는 outer product, 즉 :
[1] [0 1*1 2*1 3*1]
[2] * [0 1 2 3] = [0 1*2 2*2 3*2]
[3] [0 1*3 2*3 3*3]
을 복용하고 이것은 당신이 x
에서 빼기 할 모든 값을 제공 :이 단계에서 그래서. x - dx * np.arange(4)
브로드 캐스팅은 열 벡터 x
소요의 마지막 동작이 유액 방정식 같이 동일하다
[10 10 10 10] [0 1*1 2*1 3*1]
[10 10 10 10] - [0 1*2 2*2 3*2]
[10 10 10 10] [0 1*3 2*3 3*3]
처럼 보이도록 외부 생성물 (각각의 열에서의 값을 복사)과 동일한 형상으로 방송 :
[x1 x1-dx x1-2dx x1-3dx]
[x2 x2-dx x2-2dx x2-3dx]
[x3 x3-dx x3-2dx x3-3dx]
실제 배열 및 예상 최종 결과 게시 – RomanPerekhrest
질문을 편집하여 작은 예제를 보여줍니다. –