'daki diğer tüm öğeleri çıkarma Hayatımı çözemiyorum.NumPy
Dizinin ikinci eksenindeki tüm diğer öğeleri kaldırmaya çalışıyorum. Bunu MATLAB'da arr(:,:,2:2:end) = [];
ile yaptım, ancak Python'da aynısını yapmaya çalıştığımda ve iki çıkışı karşılaştırdığımda farklı bir matris elde ettim.
arr = np.delete(arr,np.arange(0,arr.shape[2],2),2)
ve arr = arr[:,:,1::2]
'u denedim, ancak MATLAB ile aldığım bir şeyle karşılaşmadım.
Örnek:
MATLAB
disp(['before: ',str(arr[21,32,11])])
arr(:,:,2:2:end) = [];
disp(['after: ',str(arr[21,32,11])])
çıkışı:
before: 99089
after: 65699
Python
print 'before: ' + str(arr[20,31,10])
arr = arr[:,:,1::2] # same output as np.delete(arr,np.arange(0,arr.shape[2],2),2)
print 'after: ' + str(arr[20,31,10])
çıktı: Ben temel bir şey bakan değilim umut
before: 99089
after: 62360
.
Sadece 'arr = arr [:,:, :: 2] '? – Divakar
@Divakar Tamam, bu gerçekten her şeyi düzeltti. “:: 2” nin neden 1: 2'den farklı çalıştığını açıklıyor musunuz? – David
Eh '[1 :: 2]' '[1]' i '' '' '' '' '' '' '' '' '' '' 'den itibaren indekslemeyi başlatır, ancak '' '' '' ''}' 'öğesinden sonra istediğinizi seçin. Yani, alternatif olarak, aynı şeyi ve etkiyi ifade etmek için 'arr = arr [:,:, 0 :: 2]' yapabilirsiniz. – Divakar