python - Numpy多维数组和反向访问

  显示原文与译文双语对照的内容
0 0

我有一个 numpy array 和 rank=4. 假设它是这样的:


np.shape(my_array)
(10,5,25,50)

我还有一个 10个值的列表,比如

 
x = np.arange(10)

 

我希望能够针对每个值 plot x的第一个轴,即,我想做:


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,例如得到每一个1 个向量,每个向量对应于第1 个向量,这些向量对应于 my_array的第一个坐标。 我也尝试了 np.reshape,但是它更改了元素的顺序,这种方法不能使用它。

时间: 原作者:

0 0

下面是一个使用广播的简单示例:


y = randn(10,4)
x = arange(10)

plot(x[:,None],y)

我想在你的情况下你会有 x[:,None,None,None]

原作者:
...