如何压平numpy矩阵进行打印

时间:2018-04-20 08:19:49

标签: python numpy

我想压平一个numpy矩阵以获得更好的打印效果:

我试过了:

import numpy as np 
latt_const = 4.05
lattice = np.matrix([
    [1, 0, 0],
    [0, 1, 0],
    [0, 0, 1],
])
lattice_cmd = "custom {} a1 {} {} {} a2 {} {} {} a3 {} {} {}".format(
    latt_const, *lattice.flatten()
)

但这引发了一个例外:

IndexError: tuple index out of range

2 个答案:

答案 0 :(得分:0)

使用np.matrix代替*ip=&ip可以解决问题。

答案 1 :(得分:0)

当你使用.format时,这个函数需要两个参数{} {},在你的例子中是latt_const和lattice.flatten()。您的代码中的问题是您不需要插入十个{},只需要其中两个。

这应该有效:

import numpy as np 
latt_const = 4.05
lattice = np.matrix([
    [1, 0, 0],
    [0, 1, 0],
    [0, 0, 1],
])
print("custom {} My_Matrix {} ".format(latt_const, lattice.flatten(0)))

如果您需要将它们分开,请尝试:

import numpy as np
latt_const = 4.05
lattice = np.matrix([
  [1, 0, 0],
  [0, 1, 0],
  [0, 0, 1],
])
a1 = lattice[0,:]  # first row
a2 = lattice[1,:]  # second row
a3 = lattice[2,:]  # third row
print("custom {} a1 {} a2 {} a3 {} ".format(latt_const, a1, a2, a3))