矩阵元素重复错误

epggiuax  于 2021-09-08  发布在  Java
关注(0)|答案(1)|浏览(192)

我试图创建一个矩阵,内容如下:

[0,1,2]
[3,4,5]
[6,7,8]

然而,我的元素不断重复。我该如何解决这个问题?

import numpy as np

n = 3
X = np.empty(shape=[0, n])

for i in range(3):
    for j  in range(1,4):
        for k  in range(1,7):
            X = np.append(X, [[(3*i) , ((3*j)-2), ((3*k)-1)]], axis=0)

print(X)

结果:

[[ 0.  1.  2.]
 [ 0.  1.  5.]
 [ 0.  1.  8.]
 [ 0.  1. 11.]
 [ 0.  1. 14.]
 [ 0.  1. 17.]
 [ 0.  4.  2.]
 [ 0.  4.  5.]
yhuiod9q

yhuiod9q1#

我不确定你认为你的代码应该如何工作。您正在将一行追加到 X 在每个循环中,337次,最后得到一个54 x 3的矩阵。
我想也许你想做:

for i in range(3):
  X = np.append(X, [[3*i , 3*i+1, 3*i+2]], axis=0)

正如您所知,通常不鼓励追加数组(只需创建一个列表列表,然后将其设置为numpy数组)。
你也可以这样做

>> np.arange(9).reshape((3,3))
array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])

相关问题