我有一些問題,理解python/numpy如何在比較空列表時進行數組形狀的轉換 - 就我所知,這是一個與False的隱式(元素明智)比較。numpy與空列表比較陣列的形狀
在下面的示例形狀由一個在最後一個維度減小,如果它不大於1
z = N.zeros((2,2,1))
z == []
>> array([], shape=(2, 2, 0), dtype=bool)
z2 = N.zeros((2,2,2))
z2 ==[]
>> False
但是,如果我用假直接比較,我得到預期的輸出。
z = N.zeros((2,2,1))
(z == False).shape
>> (2, 2, 2)
z2 = N.zeros((2,2,2))
(z2 == False).shape
>> (2, 2, 1)
我總是將廣播理解爲將輸出數組擴展爲兩個輸入數組的最大形狀(如果適用)。在這種情況下,這是不正確的。謝謝澄清! – dbacc
只有尺寸'1'尺寸被改變以匹配其他尺寸。尺寸'2'永遠不會擴大到匹配尺寸'4'。我會將廣播序列描述爲(2,2,1),(0,)=>(2,2,1),(1,1,0)=>(2,2,0)'。所有'1'都被改變了。 – hpaulj