【问题标题】:How to correct this python code (fill up a matrix row by row)?如何更正此 python 代码(逐行填充矩阵)?
【发布时间】:2021-12-08 10:45:04
【问题描述】:

我想使用 A 中的元素填充名为 allsamples 的矩阵。我编写了以下代码,但是,我收到了错误消息:“ allsamples[i,:]=[a1, a2, a3, a4] IndexError: index 0 is out of bounds for axis 0 with size 0"。如何更正以下代码以使其正常工作?谢谢!

 import numpy as np
A=[2, 4, 9, 10]
lA=len(A)
i=0
allsamples=np.zeros((lA^(lA),lA))
for a1 in A:
    for a2 in A:
        for a3 in A:
            for a4 in A:
                allsamples[i,:]=[a1, a2, a3, a4]
                i=i+1
print(allsamples)

【问题讨论】:

  • 你能举一个小例子来说明预期的输出是什么
  • @defladamouse 谢谢!例如,如果A=[2,4],那么我想要allsamples[1,:]=[2,2] allsamples[2,:]=[2,4] allsamples[3,:]=[4,2 ] allsamples[4,:]=[4,4]

标签: python numpy for-loop matrix


【解决方案1】:

假设其余代码是正确的,错误就在这里(lA^(lA),lA)。 ^ 是按位异或 (https://wiki.python.org/moin/BitwiseOperators)。修改为(lA**lA, lA),运行无误。

【讨论】:

    【解决方案2】:

    所有样本的形状为 (0,4)。所以这可能是问题所在。 lA^(lA) 给出零。

    【讨论】:

    • 谢谢!这正是问题所在。我的目标是 lA 的力量 lA...
    猜你喜欢
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 2020-02-17
    • 2021-08-21
    • 1970-01-01
    • 2016-10-28
    • 1970-01-01
    相关资源
    最近更新 更多