也许这件事在别的地方被提出来了,但我还没有找到。 假设我们有一个numpy数组:
a = np.arange(100).reshape(10,10)
b = np.zeros(a.shape)
start = np.array([1,4,7]) # can be arbitrary but valid values
end = np.array([3,6,9]) # can be arbitrary but valid values
start
和end
都有有效值,因此每个切片对a
也是有效的。
我想将a
中的子数组值复制到b
中的相应点:
此语法不起作用,但等效于:
b[:, start[0]:end[0]] = a[:, start[0]:end[0]]
b[:, start[1]:end[1]] = a[:, start[1]:end[1]]
b[:, start[2]:end[2]] = a[:, start[2]:end[2]]
我想知道是否有更好的方法来代替在start
和end
数组上显式的for循环。在
谢谢!在
我们可以使用^{} 创建一个要编辑的位置的掩码,其中包含两组与
start
和end
数组的比较,然后简单地用boolean-indexing
为矢量化解决方案赋值-样本运行-
^{pr2}$相关问题 更多 >
编程相关推荐