2014-03-24 2 views
1

아래 배열의 문자 중 일부를 'K'문자로 바꿔야합니다. 하지만 언제든지 numpy.replace을 사용하고 numpy.delete을 사용할 때마다 배열의 모양이 바뀝니다. 배열 모양을 변경하지 않고 배열에서 선택한 문자를 변경할 수있는 방법이 있습니까?파이썬 : 배열 모양을 변경하지 않고 배열의 요소 바꾸기

AA = [['A', 'B', 'C']] 
AA = np.array(AA) 
AA = np.repeat(AA, 5, axis=0) 


AA = np.delete(AA, (1)) 
AA = np.insert(AA, (1), 'K') 

let 어레이의 문자를 'K'로 바꿀 수 있기를 원합니다.

쉬운 방법이 있나요?

+0

AA는 중첩 된 List [ 'A', 'B', 'C']가있는 List로 처음 정의됩니다. 나는 그것이 당신이 어려움을 때리는 곳이라고 상상합니다. –

+0

"let 배열의 문자를''K ''로 바꾸는 것은 무엇을 의미합니까? 위치로 바꾸시겠습니까? 값으로 바꾸시겠습니까? – DSM

답변

0

나는 당신이 성취하려고 시도하고있는 것과 당신이 상상할 수있는 것들이 드러날 것이라고는 분명하지 않습니다.

5X3 배열로 시작하면 입니다. 그러면 한 요소를 삭제합니다. 이제 14 개의 요소가 있습니다. 그 모양이 어떤 모양이었을까요?

어쩌면 당신은 직접 할당을 원하는

AA[1,2]='K' 
0

당신이 시도, 서로

A = np.array(list('ABC')) 
A = np.repeat(A, 5, axis=0) 
A[np.where(A == 'A')] = 'K' 

나타내는 인덱스의 집합을 반환 numpy.where(A == 'A') NumPy와 기능 같은 것을 한 문자의 모든 인스턴스를 바꾸려면 A에는 문자가 "A"입니다. 그런 다음 해당 색인을 사용하여 A 배열을 슬라이스하고 재 할당합니다. 당신이 인덱스를 선택하려면 더 명시 적으로,

inds = np.where(A == 'A') 
A[inds] = 'K' 

는 또한, 당신이

A = np.array(list('ABC')) 
A = np.repeat(A, 5, axis=0) 
A[np.where(A == A[1])] = 'K' 
같은 것을 할 수있는 (배열의 위치 1 말), 그리고 그 편지와 'K'와 유사한 모든 문자를 대체
관련 문제