用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)
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,表示输出小数点后一位。运行代码后,您将会看到输出的矩阵中所有元素的小数点后都只有一位。