首页 > 解决方案 > 在遍历 ndarray 时访问相邻列中的元素

问题描述

我想将 an 列中每个元素的值乘以ndarray下一列中相应元素的值。我可以这样做enumerate()

import numpy as np

s = np.array([[0, 1, 2], [3, 4, 5]], np.int32)

[i*s[1, c] for c, i in enumerate(s[0])]
# [0, 4, 10]

但这感觉很hacky,将它扩展到更深会更加hackier ndarrays。在 NumPy 中是否有更好的方法来处理这样的迭代?我看了看strides,但不清楚如何使用它进入另一列。

标签: pythonnumpy

解决方案


您可以使用numpy.prod.

这里的文档:https ://numpy.org/doc/stable/reference/generated/numpy.prod.html

import numpy as np

s = np.array([[0, 1, 2], [3, 4, 5]], np.int32)
np.prod(s, axis=0)

推荐阅读