두 배열 input
및 label
이 있습니다. 각 배열의 크기는 3x2x2x2
이고 3
개의 요소는 2x2x2
행렬입니다. 배열 label
일부 요소 (내 벨로우 코드에서 =2
) 0 값이 있습니다. 배열을 삭제하거나 제거하려고합니다. label
배열. 또한 input
배열의 요소를 삭제하려면 label
배열의 삭제 된 인덱스에 해당하는 요소를 삭제하고 싶습니다. 파이썬으로 어떻게 할 수 있습니까? 마스크와 감사3D 매트릭스에서 제로 요소를 삭제하는 방법은 무엇입니까?
import numpy as np
input=np.arange(3*2*2*2).reshape(3,2,2,2)
label=np.arange(3*2*2*2).reshape(3,2,2,2)
# Assign value
label[0]=0
label[2]=0
print input
print label
#Delete element
for i in range(label.shape[0]):
if(np.sum(label[i])==0):
print i
#del label[i, :, :, :]
#Expected result: non-zero element are label[1] and input[1]
numpy 배열이 목적에 맞는 최상의 데이터 구조라고 생각하지 않습니다. 'numpy.ndarray' 객체는 임의의 삽입이나 삭제가 아닌 랜덤 액세스를 위해 메모리 블록에 저장되는 균일 한 유형 및 크기의 객체라는 의미에서 "배열"을 모델로합니다. 당신이 할 수있는 일은 "특별한"위치에 대한 별도의 색인을 유지하고 나중에 사용하기 위해 건너 뛴다는 것입니다. –