我有一个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