Dizilerim var x = np.arange(6).reshape(3, 2)
.`x [False]` nezdinde ne yapıyor?
x[False]
veya x[np.asanyarray(False)]
anlamı nedir? Her ikisi de beklenmedik olan ile sonuçlanır. gibi bir boyuttan dolayı uygun boyutta olmayan bir maske nedeniyle IndexError
alabilmem bekleniyor.
Bu davranış ek boyut hem de sonuç olarak, x[True]
ve x[np.asanyarray(True)]
için tutarlı olup: array([[[0, 1], [2, 3], [4, 5]]])
.
Numpy 1.13.1 kullanıyorum. Davranışın yakın zamanda değiştiği görülüyor, bu nedenle eski sürümlerin yanıtlarını almak güzel olsa da, lütfen yanıtlarınızda sürümünüzü belirtin.
Sadece şeyiyle
, bu soru üzerine yorumları temel https://github.com/numpy/numpy/issues/9515 dosyalanmış DÜZENLEME. 2
DÜZENLEME Ve neredeyse immeditely kapattı.
Hangi NumPy sürümdesiniz? Sonuç olarak dizi ([0, 1]) elde ediyorum. Ve bunun nedeni, "False" '0', -> 'x [0]' (1.11.3’de) olarak değerlendirilir. –
@BradSolomon En son sürümde değiştirildi: https://docs.scipy.org/ doc/numpy-dev/release.html # boolean-indexing-changes (* Boolean'ın skaler dizilere indekslenmesi yeni bir 1-d dizisi döndürür. Bu, dizi (1) [dizi (True)] dizisi ([1]) verir demektir ve orijinal dizi değil. *) – ayhan
@BradSolomon. 1.13.1, 'False', beklenen örneğimde gösterdiğim gibi bir boolean matrisinden geçmediğiniz sürece bir tamsayı olarak ele alınacaktır. Ben x [False] == x [0] ', 'x [np.array (False)] == x [0]' ile çok fazla değil. Ne de oluyor gibi görünüyor. –