【发布时间】:2022-10-06 04:48:20
【问题描述】:
如何通过索引映射转换 ndarray?例如,
>>> import numpy as np
>>> x = np.arange(3*4).reshape((3,4))
>>> x
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
>>> wanted = np.array([[x[i, 1+i-2*j] if 1+i-2*j>=0 and 1+i-2*j<4 else 0 for j in range(4)] for i in range(3)])
>>> wanted
array([[ 1, 0, 0, 0],
[ 6, 4, 0, 0],
[11, 9, 0, 0]])
我们可以用矢量化的方式(不是循环或列表印象)吗?在我相当大的 ndarray 上,列表压缩或循环非常慢。
标签: python numpy-ndarray