넘파이 브로드캐스팅 규칙이 잘 안 잡힙니다. 예를 들어 이건 되거든요.


a = np.ones((5, 1))
b = np.ones((6,))
a + b  # (5, 6) 나옴


근데 이건 에러가 나요.


c = np.ones((3, 4))
d = np.ones((2,))
c + d  # ValueError


모양이 다른 건 둘 다 마찬가진데 위는 (5,6)으로 알아서 늘어나고 아래는 왜 안 되는 걸까요? 그냥 크기 안 맞으면 다 에러날 줄 알았는데 되는 케이스가 있으니까 오히려 더 헷갈립니다. 어떤 기준으로 되고 안 되는지 규칙 좀 정리해서 알려주세요.