我有一個numpy數組,rank = 4。假設它看起來像這樣:Numpy多維數組和反向訪問
np.shape(my_array)
(10,5,25,50)
我也有10個值的列表,如
x = np.arange(10)
我希望能夠繪製x
反對my_array
第一軸的每一個值,也就是說,我想這樣做:
for axis2_index in xrange(5):
for axis3_index in xrange(25):
for axis4_index in xrange(50):
plt.plot(x,my_array[:,axis2_index,axis3_index,axis4_index])
但當然,我想要做的是,在一個numpy的形式,沒有for
循環。我一直在爲此苦苦掙扎,但仍然找不到任何簡單的方法來做到這一點。換句話說,我希望能夠訪問my_array
,例如,我可以得到一個5×25×50的10個矢量陣列,這些矢量對應於第一個軸my_array
。我也嘗試過np.reshape
,但它改變了元素的順序,使我無法使用它。
這不是一個很大數量的行嗎?在這種情況下,您不必擔心for循環的速度,而是渲染速度。但是,我建議你查看'np.broadcast_arrays'。 – mdurant 2014-09-03 18:56:17
謝謝@mdurant。這只是一個例子,我實際上想要做一些計算和訪問所有這些數字:它們是在3個不同參數的網格上計算函數的結果,額外的維度是函數的輸出,本身就是一個數組(一個譜)。我已經檢查過'np.broadcast_arrays',但仍然無法看到我可以如何使用..任何帶有類似情況的教程,我都可以看看?對於我來說,如何做到這一點,numpy doc是不夠的。 – 2014-09-03 19:34:05