我正在編寫一個程序,該程序假設能夠導入某些較高維度的numpy數組,例如,類似於陣列a:選擇要在一個numpy數組中索引的維數
a = numpy.zeros([3,5,7,2])
此外,每個維度將對應於某個物理維度,例如,頻率,距離......我還將導入包含這些尺寸信息的陣列,例如爲一個以上:
freq = [1,2,3]
time = [0,1,2,3,4,5,6]
distance = [0,0,0,4,1]
angle = [0,180]
從這個例子
顯然和簽名可以計算出,頻率屬於維度0,時間維度2等。但由於這事先不知道,所以我可以採取像頻率片
a_f1 = a[1,:,:,:]
因爲我不知道哪個維度的頻率索引。
所以,我想要的是有一些方法來選擇索引索引的維度;在某些Python'ish代碼中有些類似於
a_f1 = a.get_slice([0,], [[1],])
這是假設從維度0和完整的其他維度返回索引1的切片。
做
a_p = a[0, 1:, ::2, :-1]
隨後將對應於類似
a_p = a.get_slice([0, 1, 2, 3], [[0,], [1,2,3,4], [0,2,4,6], [0,]])
你以爲你知道如何提前多少維度有?也就是說,對於你的'a.get_slice([0,],[[1],])',你知道應該有三個「完全的其他維度」嗎? – BrenBarn
@BrenBarn呃,可能是那種語法。我只是提出了語法來說明我需要什麼。 – Robert
我覺得這篇關於熊貓的文章[分層索引(MultiIndex)](http://pandas.pydata.org/pandas-docs/stable/advanced.html)可能很有趣。 –