首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在numpy数组python中的每个元素后面添加元素

在numpy数组python中的每个元素后面添加元素
EN

Stack Overflow用户
提问于 2020-02-22 14:51:34
回答 2查看 1.2K关注 0票数 1

我刚刚从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,0,0

我尝试了以下几点:

代码语言:javascript
运行
复制
   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)

返回:

代码语言:javascript
运行
复制
[4 0 0 0 0 5 6]
[4 5 0 0 0 0 6]
[4 5 6 0 0 0 0]

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

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

非常感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-22 15:01:33

使用numpy .zeros函数!

代码语言:javascript
运行
复制
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

变成4 0 0 0 5 0 0 0

代码语言:javascript
运行
复制
>>> newArray
array([4, 0, 0, 0, 0, 5, 0, 0, 0, 0, 6, 0, 0, 0 ,0])
票数 3
EN

Stack Overflow用户

发布于 2020-02-22 15:01:57

我还没有使用numpy来解决这个问题,但是这段代码似乎返回了所需的输出:

代码语言:javascript
运行
复制
a = [4,5,6]
b = [0,0,0,0]
c = []
for x in a:
   c = c + [x] + b
print(c)

我希望这能帮到你!

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60353370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档