我有一个数组,类似于:
a =np.array([[1,2,3,5,8,7,2,1,3,5,1,2,20,21],[3,8,3,9,8,7,10,1,3,5,1,2,20,21]])
要求:
需要访问具有给定步骤的索引值。例如步长值3。只有索引值而不是元素值。
所需输出:
[[0,3,6,9,12],[0,3,6,9,12]]
使用列表理解来重复每一行的范围。
a =np.array([[1,2,3,5,8,7,2,1,3,5,1,2,20,21],[3,8,3,9,8,7,10,1,3,5,1,2,20,21]])
indexes = [list(range(0, a.shape[1], 3)) for _ in range(a.shape[0])]
你可以做:
a = np.array([[1,2,3,5,8,7,2,1,3,5,1,2,20,21],[3,8,3,9,8,7,10,1,3,5,1,2,20,21]])
step = 3
indices = [np.arange(0, arr.size, step) for arr in a]
打印(索引(:
[array([ 0, 3, 6, 9, 12]), array([ 0, 3, 6, 9, 12])]
如果您想要列表而不是np数组,只需使用.tolist()
,如:
[np.arange(0, arr.size, step).tolist() for arr in a]