python - 生成生成numpy数组
问题描述
我正在尝试使用下面的代码生成一组数组。我也会尝试解释我所做的事情
第一的:
example = np.zeros(8,dtype=int)
print(example)
这给了我输出:
[0 0 0 0 0 0 0 0]
然后:
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)
然后给了我:
[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]
但这就是我想要的:
[[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]]
或类似的东西。现在,我尝试搜索,无论我尝试什么都会出错。希望我能尽快得到。
解决方案
如果我正确理解了您的问题,那么您就在身份矩阵之后。
X = np.identity(8, dtype=int)