小编Adi*_*369的帖子

Numpy重复2d数组

比如两个阵列

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)

python arrays numpy vectorization

5
推荐指数
1
解决办法
2463
查看次数

查找由numpy数组的索引分割的子数组的子集

给定一个数组'数组'和一组索引'索引',如何找到通过以矢量化方式沿着这些索引分割数组形成的子数组的累积和?澄清一下,假设我有:

>>> 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)

python arrays performance numpy vectorization

3
推荐指数
1
解决办法
829
查看次数

标签 统计

arrays ×2

numpy ×2

python ×2

vectorization ×2

performance ×1