我希望有人能向我解釋以下行爲我與numpy的陣列觀察:與numpy的陣列質樸的行爲
>>> import numpy as np
>>> data_block=np.zeros((26,480,1000))
>>> indices=np.arange(1000)
>>> indices.shape
(1000,)
>>> data_block[0,:,:].shape
(480, 1000) #fine and dandy
>>> data_block[0,:,indices].shape
(1000, 480) #what happened???? why the transpose????
>>> ind_slice=np.arange(300) # this is more what I really want.
>>> data_block[0,:,ind_slice].shape
(300, 480) # transpose again! arghhh!
我不明白這一點變調行爲,這是我想要的東西非常不方便做。任何人都可以向我解釋嗎?獲得data_block
的子集的另一種方法將是一個很大的好處。
實際的規則很簡單。如果花哨的指數(和標量也是這方面的幻想,這可能很奇怪,但是......)都是*連續的* numpy可以猜測你想從哪裏得到花式指數產生的維度。如果他們不是連續的,那就把他們放在首位。如果你記得所有花哨的索引都是「一體」的,這是有道理的。 – seberg