关于python:Numpy:是否可以以逗号分隔的形式显示数字,如1,000,000?

Numpy: Is it possible to display numbers in comma-separated form, like 1,000,000?

本问题已经有最佳答案,请猛点这里访问。

我有一个像这样的麻木数组:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
[   1024     303     392    4847    7628    6303    8898   10546   11290
   12489   19262   18710   20735   24553   24577   28010   31608   32196
   32500   32809   37077   37647   44153   46045   47562   48642   50134
   50030   52700   52628   51720   53844   56640   56856   57945   58639
   57997   63326   64145   65734   67148   68086   68779   68697   70132
   71014   72830   77288   77502   77537   78042   79623   81151   81584
   81426   84030   86879   86171   89771   88367   90440   92640   93369
   93818   97085   98787   98867  100471  101473  101788  102828  104558
  105144  107242  107970  109785  111856  111643  113011  113454  116367
  117602  117507  120910  121167  122150  123385  123079  125537  124702
  130226  130943  133885  134308  133947  136145  137959  137894  142173
  141912  142763  142003  145996  145402  146866  146092  147825  148910
  147713  149825  151061  153643  154977  156978  158904  157954  160316
  161523  163053  165434  167300  167715  166813  168388  170351  171987
  172649  177108  178431  178943  179275  178842  182607  182385  184192
  186173  184352  188252  190069  190973  193528  194201  193948  195272
  196028  196983  197949  200612  200036  202586  203816  204169  204442
  206565  204978  207570  208841  209840  211022  215287  216581  218759
  219129  219654  221390  223196  222838  226258  227427  228720  228618
  229596  230456  232478  234833  235885  236174  240016  241327  240405
  245089  246395  246427  248713  250445  251459  250243  250142  252208
  255305  257085  259021  261418  260371  262429  266987  268073  267347
  267778  272190  274298  276432  278301  278566  281415  286693  286916
  290180  291991  293615  294196  294794  295632  295801  296841  297921
  297851  298639  299947  300571  303739  305400  305893  308541  308502
  309391  311174  313150  313809  313503  314947  314267  316401  315598
  315667  319040  318215  322159  322351  326841  329272  329970  331086
  330680  333592  335304  338395  339535  338490  340901  340224  342214
  344058  344265  345342  348066  349170  351184  351246  350390  352825
  354106  353678  355172  356021  356572  358199  358499  360150  359673
  361638  361261  364342  363712  363537  364614  365605  370378  369543
  372492  371458  374351  374062  377692  380780  383285  386580  391073
  390572  390016  390071  391357  391443  393495  395623  396069  398131
  397323  397600  401621  402409  402653  402565  404011  406677  408032
  412484  412818  414683  415563  416881  417693  418979  421372  422183
  424204  428040  433048  436204  441467  441364  444357  445020  446317
  447746  450215  452156  452459  453675  455563  458602  457832  459647
  459422  460776  462066  463088  464990  465594  465412  467838  470474
  469814  472107  471190  474962  473129  475885  476326  477163  477549
  480703  482112  483272  485919  489819  493653  494763  497317  499973
  501417  502259  505029  505738  506419  505987  509523  510927  511615
  510642  512194  514167  515398  515899  514871  516935  517935  518745
  520151  523230  522624  524360  527499  527713  529840  533364  533427
  535012  535626  536789  538309  539294  541628  543409  543257  547659
  548805  547957  549206  550418  551496  553944  554964  556040  555442
  556115  558035  559012  559996  560687  561125  562147  561847  564313
  565764  566978  568285  571312  570638  573771  575404  576862  576623
  578010  581445  581721  582612  583485  584905  584490  587062  588413
  590182  590895  592253  593207  592167  592778  594918  595386  595313
  596638  599286  600967  600104  603553  603062  604840  605574  608996
  608342  609718  613394  616706  620509  620742  623473  627696  628046
  630422  629559  631104  632706  631853  631558  634244  633644  635318
  637530  639561  639621  640990  642450  644077  646093  646231  645289
  648794  650183  651224  650614  652121  653160  653916  654878  653366
  656464  656765  659205  660318  661160  661733  664133  666687  666141
  667800  670065  669697  673198  674909  679237  678841  680237  681066
  683609  683774  687714  688250  688348  688409  690934  691247  690561
  692331  694604  692233  694565  697065  696502  699490  698759  704335
  704495  707785  710077  708889  711285  712660  713194  713032  715592
  716780  717421  719728  718980  720024  721276  722931  721172  723217
  724522  725116  726530  727363  728557  729932  730517  731753  733026
  733901  734254  733754  735812  737422  738840  741603  743077  742448
  744012  746448  747913  748561  750163  750220  751494  751775  755024
  754450  756719  759364  758661  760435  762363  764661  764426  765811
  767944  769395  768974  769107  768022  771572  773970  773237  774987
  778125  779134  778529  779513  782699  784062  785550  785809  787398
  787119  787461  792378  793407  795447  798216  798111  800309  800055
  799506  803787  805761  807160  807536  807857  813805  814900  815323
  815944  818673  820553  821977  823213  824189  823973  825921  828105
  830929  829447  832115  835241  837169  837700  838019  840313  843718
  843404  845531  844335  847409  847815  851908  850225  850872  854830
  856319  858022  857802  858226  859101  859043  860669  862139  861543
  862198  862803  863898  864713  865809  864774  867725  869353  870102
  869142  870530  872039  873075  875093  875414  877401  879831  879495
  883657  884148  886047  887192  889179  890189  891934  893670  894898
  895035  898261  899598  902954  901823  903611  903217  905733  912109
  912091  912521  917189  917015  919413  925544  925781  927930  932198
  933415  932876  935606  937908  936373  939053  938267  942618  942942
  945486  946063  947948  949637  950909  951936  950532  953508  955364
  957614  960969  960691  961469  962765  964259  963586  966093  965046
  965127  967633  968184  970414  970205  969498  970840  973759  975468
  978685  979028  981163  983389  983760  984413  985753  985216  988019
  989954  990162  990550  989592  992109  993933  992624  994876  993699
  995831  999375  997783  999865 1002329 1003334 1001654 1005034 1006174
 1010507 1011310 1012061 1012837 1014860 1015783 1019508 1022806 1023917
 1024263 1027503 1026829 1028601 1031338 1032535 1033546 1033509 1036241
 1036561 1038885 1041618 1043533 1045119 1047536 1046882 1048368 1047887
    2047     392    4847    7628    6303    8898   10353   11290   10546
   12489   18710   20735   20539   24577   27082   28010   29933   31608
   32196   32500   32809   37077   37647   44153   46045   46597   48642
   49825   50134   52628   53055   53844   56856   55986   57945   57997
   58639   64145   65734   68086   68779   71014   71323   72830   77502
   77537   77288   79869   78574   80348   79623   81584   81151   84030
   86879   87747   89771   88367   90440   92640   93818   97085   98787
  100471  101250  102186  101473  101788  102828  106089  105701  107242
  107970  109785  112702  113454  116367  117602  118378  117507  120224
  120910  122150  123385  123825  130943  130123  133885  134308  133543
  136145  137959  137894  139657  141912  142173  142003  145122  145402
  146866  146092  147825  148910  151061  153643  154977  157613  158904
  157954  162844  164345  165668  165434  167300  166813  168388  170351
  170859  171600  172649  177108  178431  179304  178842  182385  182607
  183418  184352  188252  190069  190973  193528  193948  194201  195272
  196028  196983  197949  200612  200036  203193  204442  203816  204978
  206565  207607  207570  208841  211579  211022  215287  216581  219129
  218759  219654  222196  223196  221999  226258  227427  228720  229596
  230047  230456  232478  234623  234833  234131  235885  236174  240230
  240498  240016  241327  240405  242923  246395  246427  248173  250445
  251459  250243  255305  255883  257085  259021  260371  261951  262195
  264831  266987  268073  267778  272190  274298  276432  279860  278566
  281415  286693  286916  286991  289070  291991  293615  293898  294168
  295801  295050  297921  298639  298449  299179  303739  305893  307647
  309098  309391  313150  313809  313503  314947  314267  316401  315598
  317854  322159  322351  326841  326917  329272  329631  329970  331086
  330680  333592  335304  338395  339535  338490  340901  340224       0
       0       0       0       0       0       0       0       0       0
       0       0       0       0       0       0       0       0       0
       0       0       0       0       0       0       0       0       0
       0       0       0       0       0       0       0       0       0
       0       0       0       0       0       0       0       0       0
       0       0       0       0       0       0       0       0       0
       0       0       0       0       0       0       0       0       0
       0       0       0       0       0       0       0       0       0
       0       0       0       0       0       0       0       0       0
       0       0       0       0       0       0       0       0       0
       0       0       0       0       0       0       0       0       0
       0       0       0       0       0       0       0       0       0
       0       0       0       0       0       0       0       0       0
       0       0       0       0       0       0       0       0       0
       0       0       0       0       0       0       0       0       0
       0       0       0       0       0       0       0       0       0
       0       0       0       0       0       0       0       0       0
       0       0       0       0       0       0       0       0       0
       0       0       0       0       0       0       0       0       0
       0       0       0]

我希望看到这些数字以逗号分隔,即:204978而不是204978。这在麻木/坐骨神经痛中可行吗?


如果要在全球范围内应用打印首选项,可以使用numpy.set_printoptions()

1
2
3
4
5
6
7
8
9
>>> import numpy as np
>>> a = np.array([338490, 340901, 340224])
>>> a
array([338490, 340901, 340224])
>>> np.set_printoptions(formatter={'int_kind': '{:,}'.format})
>>> a
array([338,490, 340,901, 340,224])
>>> print(a)
[338,490 340,901 340,224]

假设您使用的是python>=2.7,那么可以执行如下操作:

1
2
3
>>> d = np.array([1, 13, 141, 2345, 51923, 691247])
>>> np.array2string(d, formatter={'int_kind': lambda x: '{:,}'.format(x)})
'[1 13 141 2,345 51,923 691,247]'

如果你使用的是2.7之前的版本,那么通过formatter的相同技巧也会起作用,但你将无法使用'{:,}'.format

你也可以完全绕过numpy,比如

1
2
>>> ' '.join('{:,}'.format(x) for x in d)
'1 13 141 2,345 51,923 691,247'