在numpython数组中的每个元素之后添加元素

2024-04-25 23:52:58 发布

您现在位置: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数组中,而不是三个列表中

有人知道怎么解决这个问题吗

非常感谢


Tags: 方法函数inimportnumpy元素forindex
2条回答

使用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

所以uuuuuu0[0 0 0 0 0 0 0 0 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 0 6 0 0 0 0 0]

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

我没有使用numpy来解决此问题,但此代码似乎返回了您所需的输出:

a = [4,5,6]
b = [0,0,0,0]
c = []
for x in a:
   c = c + [x] + b
print(c)

我希望这有帮助

相关问题 更多 >