python 매트릭스 충전 0 구현 예

1288 단어 python행렬채우다
필요:
원 매트릭스

[[1 2 3]
 [4 5 6]
 [7 8 9]]
원 매트릭스 요소 사이 에 요소 0 을 채 워 서 얻 을 수 있 습 니 다.

[[1. 0. 2. 0. 3.]
 [0. 0. 0. 0. 0.]
 [4. 0. 5. 0. 6.]
 [0. 0. 0. 0. 0.]
 [7. 0. 8. 0. 9.]]
생각:
먼저 확장 행렬 의 차원 을 구하 고 각 줄 마다 옮 겨 다 니 며 요소 의 색인 규칙 에 따라 순서대로 값 을 부여 하여 새로운 확장 행렬 을 실현 합 니 다.이 사고방식 은 다음 과 같다.

import numpy as np

def PadMat(Ndim, Mat):
 Brow = Bcol = 2*Ndim-1
 B = np.zeros([Brow, Bcol])
 for row in range(Brow):
 if row%2 == 0:
 for col in range(Bcol):
 if col%2 == 0:
 pos_c = int(col/2)
 pos_r = int(row/2)
 # print(row, col)
 B[row, col] = Mat[pos_r, pos_c]
 else:
 B[row, col] = 0
 return B


# A = np.arange(9) + 1
# A = A.reshape([3, 3])
A = np.arange(16) + 1
A = A.reshape([4, 4])
# print(A.shape[0])
N = Arow = Acol = A.shape[0]

NewMat = PadMat(Ndim=N, Mat=A)
print(A)
print(NewMat)
요약:
이 생각 은 매우 직접적 이지 만 순환 세트 순환 은 매우 어 리 석 은 방법 이 고 옮 겨 다 니 는 것 도 매우 느리다.네티즌 들 이 어떤 좋 은 생각 을 가지 고 있 는 지 모 르 겠 어 요?
이상 의 python 이 행렬 충전 0 을 실현 하 는 예 는 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 에 게 참고 가 되 고 저희 도 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기