numpy生成矩阵怎么输出小数点后一位啊?

用numpy生成矩阵怎么输出小数点后一位啊?
代码:

import numpy as np
grid = np.zeros((5,5), dtype='i,i')
H = 4.0
W = 4.0
dx = 1
dy = 1
i = 1
NI = 4
xi = 0.0
yi = 0.0

while i <= 5:
  xi = -0.5 * W + (i - 1) * dx
  grid [NI, :] = (xi, 0)
  i = i+1
  j=1
  NJ = 0
  while j <= 5:
    yj = -0.5 * H + (j - 1) * dy
    grid [NI,NJ] = (xi,yj)
    j = j+1
    NJ = NJ+1
  NI = NI - 1
np.set_printoptions(precision=2)
print(grid)

img


import numpy as np
grid = np.zeros((5,5), dtype='f,f')
H = 4.0
W = 4.0
dx = 1
dy = 1
i = 1
NI = 4
xi = 0.0
yi = 0.0

while i <= 5:
  xi = -0.5 * W + (i - 1) * dx
  grid [NI, :] = (xi, 0)
  i = i+1
  j=1
  NJ = 0
  while j <= 5:
    yj = -0.5 * H + (j - 1) * dy
    grid [NI,NJ] = (xi,yj)
    j = j+1
    NJ = NJ+1
  NI = NI - 1
np.set_printoptions(precision=1,floatmode='fixed')
print(grid)
# [[( 2.0, -2.0) ( 2.0, -1.0) ( 2.0,  0.0) ( 2.0,  1.0) ( 2.0,  2.0)]
#  [( 1.0, -2.0) ( 1.0, -1.0) ( 1.0,  0.0) ( 1.0,  1.0) ( 1.0,  2.0)]
#  [( 0.0, -2.0) ( 0.0, -1.0) ( 0.0,  0.0) ( 0.0,  1.0) ( 0.0,  2.0)]
#  [(-1.0, -2.0) (-1.0, -1.0) (-1.0,  0.0) (-1.0,  1.0) (-1.0,  2.0)]
#  [(-2.0, -2.0) (-2.0, -1.0) (-2.0,  0.0) (-2.0,  1.0) (-2.0,  2.0)]]
#

您可以在使用 set_printoptions() 函数时指定参数 precision 来控制矩阵输出小数点后的位数。例如,如果您想要输出小数点后一位,可以按照以下方式修改代码:

import numpy as np
 grid = np.zeros((5,5), dtype='i,i')
H = 4.0
W = 4.0
dx = 1
dy = 1
i = 1
NI = 4
xi = 0.0
yi = 0.0
 while i <= 5:
  xi = -0.5 * W + (i - 1) * dx
  grid [NI, :] = (xi, 0)
  i = i+1
  j=1
  NJ = 0
  while j <= 5:
    yj = -0.5 * H + (j - 1) * dy
    grid [NI,NJ] = (xi,yj)
    j = j+1
    NJ = NJ+1
  NI = NI - 1
 np.set_printoptions(precision=1) # 将矩阵输出精度设置为小数点后一位
print(grid)

在以上修改后的代码中,我们在 set_printoptions() 函数中将 precision 参数的值设置为1,表示输出小数点后一位。运行代码后,您将会看到输出的矩阵中所有元素的小数点后都只有一位。

img


还是不行啊