比如两个阵列
arr = array([10, 24, 24, 24, 1, 21, 1, 21, 0, 0], dtype=int32)
rep = array([3, 2, 2, 0, 0, 0, 0, 0, 0, 0], dtype=int32)
Run Code Online (Sandbox Code Playgroud)
np.repeat(arr,rep)返回
array([10, 10, 10, 24, 24, 24, 24], dtype=int32)
Run Code Online (Sandbox Code Playgroud)
有没有办法为一组2D数组复制此功能?
这是给定的
arr = array([[10, 24, 24, 24, 1, 21, 1, 21, 0, 0],
[10, 24, 24, 1, 21, 1, 21, 32, 0, 0]], dtype=int32)
rep = array([[3, 2, 2, 0, 0, 0, 0, 0, 0, 0],
[2, 2, 2, 0, 0, 0, 0, …Run Code Online (Sandbox Code Playgroud) 给定一个数组'数组'和一组索引'索引',如何找到通过以矢量化方式沿着这些索引分割数组形成的子数组的累积和?澄清一下,假设我有:
>>> array = np.arange(20)
>>> array
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19])
indices = np.arrray([3, 8, 14])
Run Code Online (Sandbox Code Playgroud)
操作应该输出:
array([0, 1, 3, 3, 7, 12, 18, 25, 8, 17, 27, 38, 50, 63, 14, 29, 45, 62, 80, 99])
Run Code Online (Sandbox Code Playgroud)
请注意,阵列非常大(100000个元素),因此,我需要一个矢量化答案.使用任何循环会大大减慢它.另外,如果我有同样的问题,但是2D数组和相应的索引,我需要为数组中的每一行做同样的事情,我该怎么办呢?
对于2D版本:
>>>array = np.arange(12).reshape((3,4))
>>>array
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
>>> indices = np.array([[2], [1, …Run Code Online (Sandbox Code Playgroud)