我现在有一个形状为(m, n)
的二维numpy数组。此外,我有两个(m, p)
索引数组i1
和i2
。索引总是连续的!你知道吗
import numpy as np
t = np.array([[-1, -1, 0, 0, 1, 2, 2],
[-1, -1, 0, 1, 2, 3, 3],
[0, 0, 1, 2, 2, 3, 3]])
i1 = np.array([3, 2, 2])
i2 = np.array([4, 3, 3])
如何使用数组i1
和i2
对t
进行切片以获得以下子矩阵?你知道吗
expected_t = np.array([
[0, 1],
[0, 1],
[1, 2]
])
就是这样
expected_t[0, :] = t[0, i1[0]:i2[0]]
expected_t[1, :] = t[1, i1[1]:i2[1]]
expected_t[2, :] = t[2, i1[2]:i2[2]]
此外,这是否可以在不通过创建视图复制数据的情况下实现?你知道吗
提前感谢大家的帮助!你知道吗
我建议这样做,但我不知道是否有一种最快的索引方法,如下示例:
或更短:
相关问题 更多 >
编程相关推荐