如何格式化多维数组列表?

2024-05-19 14:42:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个列表,cntrs,它是集群中中心数量的坐标。基本上,第一个元素是2个坐标的数组,然后是3个坐标的数组,以此类推。它与print cntrs的内容是:

[array([[ 1.95149888,  1.95403504],
       [ 6.98414983,  6.9892335 ]]), array([[ 0.98186521,  0.97763684],
       [ 7.01523632,  7.01965819],
       [ 3.02779515,  3.04964209]]), array([[ 0.97749825,  0.97886934],
       [ 7.01564811,  7.01963124],
       [ 2.90672846,  2.86009831],
       [ 3.16718753,  3.27143671]]), array([[ 3.16520274,  3.27132643],
       [ 6.72910999,  6.94502491],
       [ 0.97715149,  0.97907607],
       [ 2.90738599,  2.85892006],
       [ 7.29924758,  7.11088622]]), array([[ 7.29993897,  7.11152081],
       [ 3.16770976,  3.27348032],
       [ 6.72987889,  6.94502259],
       [ 1.32396815,  0.92670203],
       [ 0.74383915,  0.99317788],
       [ 2.90918296,  2.86325108]]), array([[ 3.04767311,  2.74427507],
       [ 0.74433306,  0.99277782],
       [ 2.75432472,  3.02288522],
       [ 1.32445471,  0.92522911],
       [ 7.30035779,  7.11196209],
       [ 6.73027771,  6.94494962],
       [ 3.19404203,  3.2858904 ]]), array([[ 3.16693842,  3.27337917],
       [ 0.71526946,  0.97641053],
       [ 1.19666632,  1.15407263],
       [ 1.41534598,  0.70413407],
       [ 7.3898936 ,  7.23016845],
       [ 6.62321659,  6.95167364],
       [ 7.06769041,  6.94257899],
       [ 2.90896473,  2.8637164 ]]), array([[ 7.30000058,  7.111688  ],
       [ 2.93568071,  2.76502603],
       [ 1.19635564,  1.15350525],
       [ 3.17086746,  3.28597849],
       [ 2.73214961,  3.05243834],
       [ 1.41510711,  0.70335533],
       [ 3.28473941,  2.82685228],
       [ 6.72963674,  6.94498021],
       [ 0.71540198,  0.97553514]]), array([[ 3.04671636,  2.74375001],
       [ 3.19246634,  3.28516669],
       [ 7.42117955,  7.25403886],
       [ 7.12337213,  6.72896363],
       [ 6.80853771,  6.82932201],
       [ 6.56014649,  6.96719779],
       [ 2.75383971,  3.02254777],
       [ 1.32533361,  0.92380979],
       [ 7.10911346,  7.07564848],
       [ 0.74497763,  0.99293499]])]

我想格式化输出到小数点后2位。但是,我不确定典型的print "{:.2f}".format(cntrs[i])是如何工作的。到目前为止,我的情况是:

for i in range(len(cntrs)):
    print "Number of Centres: ", i+2
    print "Co-ordinates: ", cntrs[i]

它输出,例如:

Number of Centres:  2
Co-ordinates:  [[ 1.95149888  1.95403504]
 [ 6.98414983  6.9892335 ]]

Number of Centres:  3
Co-ordinates:  [[ 0.98186521  0.97763684]
 [ 7.01523632  7.01965819]
 [ 3.02779515  3.04964209]]

如何将坐标格式设置为2 dp


Tags: of元素number内容列表数量集群数组
1条回答
网友
1楼 · 发布于 2024-05-19 14:42:16

矩阵总是乱七八糟的,但你基本上有一个列表列表,你需要格式化列表中的每个整数。在我看来,最短的方法就是使用嵌套列表理解。注意,在O(n^2)处的性能不是很好:

for i in range(len(cntrs)):
  print("Number of Centres: ", i + 2)
  print("Co-ordinates: ", [["%.2f" % centre for centre in centre_arr] 
  for centre_arr in cntrs[i]])

希望有帮助

相关问题 更多 >