首页 > 解决方案 > 在numpy数组python中的每个元素之后添加元素

问题描述

我刚开始使用 numpy 并试图创建一个函数,该函数接收数组 (x),将其转换为 np.array,并返回一个 numpy 数组,每个元素后添加 0,0,0,0。

它应该是这样的:

输入数组:[4,5,6]

输出:[4,0,0,0,0,5,0,0,0,0,6,0,0,0,0]

我尝试了以下方法:

   import numpy as np
   x = np.asarray([4,5,6])
   y = np.array([])
   for index, value in enumerate(x):
        y = np.insert(x, index+1, [0,0,0,0])
        print(y)

返回:

[4 0 0 0 0 5 6]
[4 5 0 0 0 0 6]
[4 5 6 0 0 0 0]

所以基本上我需要将输出组合成一个 numpy 数组而不是三个列表。

有人知道如何解决这个问题吗?

非常感谢!

标签: pythonarraysnumpyinsertelement

解决方案


使用 numpy .zeros 函数!

import numpy as np

inputArray = [4,5,6]

newArray = np.zeros(5*len(inputArray),dtype=int)
newArray[::5] = inputArray

实际上,您“强制”索引为 0,5 和 10 的所有值变为 4,5 和 6。

所以 _____[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

变为 [4 0 0 0 0 5 0 0 0 0 6 0 0 0 0]

>>> newArray
array([4, 0, 0, 0, 0, 5, 0, 0, 0, 0, 6, 0, 0, 0 ,0])

推荐阅读