首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >生成以生成numpy数组

生成以生成numpy数组
EN

Stack Overflow用户
提问于 2020-10-31 23:38:03
回答 3查看 44关注 0票数 2

我正在尝试使用下面的代码生成一组数组,我也将尝试解释我所做的工作

首先:

代码语言:javascript
运行
复制
example = np.zeros(8,dtype=int)
print(example)

这给了我输出:[0 0 0 0 0 0 0 0]

然后:

代码语言:javascript
运行
复制
input=np.array([],int)
for i in range(0,8):
  if i <8:
    example[i-1]=0
    example[i]=1
    print(example)
  input = np.append(input,example)
print(input)

然后它给了我:

代码语言:javascript
运行
复制
[0 1 0 0 0 0 0 0]
[0 0 1 0 0 0 0 0]
[0 0 0 1 0 0 0 0]
[0 0 0 0 1 0 0 0]
[0 0 0 0 0 1 0 0]
[0 0 0 0 0 0 1 0]
[0 0 0 0 0 0 0 1]

最后我做了这个input = np.append(input,example),它给了我:[1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1],但这是我想要的方式:

代码语言:javascript
运行
复制
[[1 0 0 0 0 0 0 0]
[0 1 0 0 0 0 0 0]
[0 0 1 0 0 0 0 0]
[0 0 0 1 0 0 0 0]
[0 0 0 0 1 0 0 0]
[0 0 0 0 0 1 0 0]
[0 0 0 0 0 0 1 0]
[0 0 0 0 0 0 0 1]] 

或者类似的东西。现在,我试着搜索,我得到了错误的任何我try.hope我得到尽快。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-10-31 23:45:16

如果我没理解错的话,你想要的是单位矩阵。

代码语言:javascript
运行
复制
    X = np.identity(8, dtype=int)
票数 2
EN

Stack Overflow用户

发布于 2020-10-31 23:45:36

您可以使用.reshape()重塑数组(不要使用input作为变量名,此处的myInput应为您的input变量):

代码语言:javascript
运行
复制
myInput = myInput.reshape(8,8)

你也可以使用np.identity来缩短它

代码语言:javascript
运行
复制
myInput = np.identity(8, dtype=int)
票数 1
EN

Stack Overflow用户

发布于 2020-10-31 23:45:39

要完成您的尝试,您应该编写input = np.append(input,example).reshape(8,8)。或者,也可以使用out = np.diag(np.ones(8))直接生成所需的输出

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

https://stackoverflow.com/questions/64623453

复制
相关文章

相似问题

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