차원이 다른 배열에 numpy 배열 추가

1개월 전 질문 1개월 전 토론 13 views

예를 들어 크기가 (1200, 1000)인 빈 numpy 배열(a라 하겠습니다)이 있습니다.

그 합계를 구해서 배열 a에 저장하고자 하는 몇 개의 numpy 배열이 있습니다.

이러한 배열의 크기(b_i)는 (1200, y)와 같으며 y는 max=1000입니다.

다음과 같은 간단한 코드 작성을 해보면

a = a + b_i

 

2차원의 불일치로 인해 작동하지 않았습니다.

해결방법이 뭘까요?

python numpy

2022-05-23 10:17

2개의 해답

제 생각으로는 b_i 배열과 일치하는 차원을 가진 a의 하위 배열을 가져와서 그런 식으로 추가하는 방식인데요.

코드로 보면

import numpy as np

a = np.zeros((12, 10))
b_1 = np.random.randint(1, 10, size=(12, 5))
b_2 = np.random.randint(1, 10, size=(12, 7))
b_3 = np.random.randint(1, 10, size=(12, 9))
arrs = [b_1, b_2, b_3]

for arr in arrs:
    a[:, :arr.shape[1]] += arr

 

또는 b_i를 0으로 채워서 a와 같은 모양으로 만들 수 있습니다.


2022-05-23 10:20

배열을 연결하려면

a = np.ones((1200,1000))
b = np.ones((1200, 500))
c = np.concatenate((a, b), axis=1)
c.shape # == (1200, 1500)

 

만약 요소 추가를 자유롭게 하려면 a랑 차원이 같게 b를 만들면 됩니다.

a = np.ones((1200,1000))
b = np.ones((1200, 500))
b_pad = np.zeros(a.shape)
b_pad[:b.shape[0],:b.shape[1]] = b
a + b_pad

 

array([[2., 2., 2., ..., 1., 1., 1.],
       [2., 2., 2., ..., 1., 1., 1.],
       [2., 2., 2., ..., 1., 1., 1.],
       ...,
       [2., 2., 2., ..., 1., 1., 1.],
       [2., 2., 2., ..., 1., 1., 1.],
       [2., 2., 2., ..., 1., 1., 1.]])


2022-05-23 10:22

해결방법이나 팁을 알고 계신다면


© 2022 pinfo. All rights reserved.