【问题标题】:Matrix element repetition bug矩阵元素重复bug
【发布时间】:2021-09-19 22:45:22
【问题描述】:

我正在尝试创建一个矩阵,内容如下:

[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.]
 

【问题讨论】:

    标签: python arrays matrix multidimensional-array


    【解决方案1】:

    我不太确定您认为您的代码应该如何工作。您在每个循环中在 X 中添加一行,因此 3 * 3 * 7 次,因此您最终得到一个 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]])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-13
      • 1970-01-01
      • 1970-01-01
      • 2014-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多