【发布时间】:2018-08-09 12:58:30
【问题描述】:
提供了一个numpy数组:
arr = np.array([0,1,2,3,4,5,6,7,8,9,10,11,12])
我想知道如何通过选择的分隔访问选择的大小 chunks,包括串联和切片:
例如:获得由两个值分隔的大小为 3 的块:
arr_chunk_3_sep_2 = np.array([0,1,2,5,6,7,10,11,12])
arr_chunk_3_sep_2_in_slices = np.array([[0,1,2],[5,6,7],[10,11,12])
最有效的方法是什么?如果可能,我想尽可能避免复制或创建新对象。也许 Memoryviews 可以在这里有所帮助?
【问题讨论】:
-
对于第一部分,
arr[[1, 3, 7, 11]]有什么问题?第二,你试过什么? [为什么你认为可以就地进行?] -
但是,这并不能解决任意大小的块的问题。我不清楚如何在不提供每个值的索引的情况下对数组的各个部分进行切片。
-
我看不出第二部分与第一部分有什么关系。为什么不在第二个问题上单独提出一个问题?
-
arbitrary中的arbitrary size chunks看起来很可疑。你不是说given块大小吗?arbitrary size chunks可能意味着输出中的块可能具有可变数量的元素,这似乎与发布的预期输出不同。
标签: python arrays python-3.x numpy