>source

주어진 매트릭스한 쌍의 "카운트"count_x그리고나는 모든 값을 가진 더 큰 새로운 행렬을 원합니다.다른 횟수로 반복됩니다. 예를 들어,m[i,j]새 배열의 블록은 크기를 갖습니다.(count_y[i],count_x[j]).

루핑을 통해 알아낸 내용은 다음과 같습니다.

count_x= [1,2,1]
count_y= [1,1,3]
matrix= np.array([[1,2,3],[4,5,6],[7,8,9]])
new_array= np.zeros((matrix.shape[0], sum(count_x)))
final_array= np.zeros((sum(count_y), sum(count_x)))
for row_n, row in enumerate(matrix):
    new_row= [[row[i]]*nx for nx, i in zip(count_x, range(len(row)))]
    unpacked_new_row= [i for j in new_row for i in j]
    new_array[row_n]= unpacked_new_row
y_indices= [[i]*ny for ny, i in zip(count_y, range(len(count_y)))]
y_indices_unpacked= [i for j in y_indices for i in j]
for j in range(final_array.shape[0]):
    final_array[j,:]= new_array[y_indices_unpacked[j],:]
print(final_array)

이 예의 출력은 다음과 같습니다.

[[1 2 2 3]
 [4 5 5 6]
 [7 8 8 9]
 [7 8 8 9]
 [7 8 8 9]]

루핑 없이 어떻게 이를 수행할 수 있습니까?

  • 이전 python : matplotlib의 vlines에서 한 줄의 색상을 변경할 수 있습니까?
  • 다음 윤곽 소재 아이콘 사용 방법