首页 > 解决方案 > 迭代多维 Numpy 数组并除以

问题描述

假设您有一个形状为 (100,3) 的多维 Numpy 数组。例如,这是前 5 行(头部):

array([[ 255.16 ,  336.7  , 2479.9  ],
   [ 249.98 ,  329.48 , 2451.32 ],
   [ 247.76 ,  325.9  , 2422.52 ],
   [ 245.22 ,  325.78 , 2395.02 ],
   [ 248.125,  330.38 , 2435.31 ]])

你将如何使用 numpy 遍历每一行并除以前一行。例如,249.98 / 255.16。然后是 247.76 / 249.98。

对每一列都这样做,比如说,我们完成了第一列,现在我们想做第二列,329.48 / 336.7。然后是 325.9 / 329.48。

标签: pythonnumpymultidimensional-array

解决方案


假设您的数组被调用,也许这样的事情matrix

>>> np.array([matrix[i+1]/matrix[i] for i in range(matrix.shape[0]-1)])
array([[0.97969901, 0.97855658, 0.98847534],
       [0.99111929, 0.98913439, 0.98825123],
       [0.98974814, 0.99963179, 0.98864818],
       [1.01184651, 1.01411996, 1.01682241]])

推荐阅读