Vanilla numpy

np.random.rand(3, 5)
array([[0.31024214, 0.22749145, 0.13044336, 0.25461994, 0.52697739],
       [0.92107579, 0.23948126, 0.39244633, 0.14060991, 0.65208926],
       [0.48535859, 0.36495544, 0.68908358, 0.6986305 , 0.10662724]])

Use pandas

import pandas as pd

pd.DataFrame(np.random.rand(20, 40))
0 1 2 3 4 5 6 7 8 9 ... 30 31 32 33 34 35 36 37 38 39
0 0.832204 0.617130 0.715202 0.048174 0.939108 0.694942 0.400874 0.768283 0.461823 0.752841 ... 0.367615 0.838190 0.590583 0.835761 0.271560 0.465102 0.000261 0.592607 0.222789 0.555047
1 0.788321 0.860006 0.364577 0.863090 0.329000 0.645932 0.447750 0.104087 0.118309 0.875203 ... 0.553917 0.856876 0.528867 0.029799 0.275072 0.084020 0.594230 0.080030 0.894168 0.263263
2 0.807275 0.177940 0.440055 0.946966 0.116133 0.239189 0.528964 0.697391 0.399538 0.036615 ... 0.399281 0.794940 0.066883 0.784982 0.125367 0.127151 0.929687 0.290480 0.546324 0.208128
3 0.518876 0.145254 0.768098 0.355796 0.280516 0.090796 0.065341 0.632886 0.829269 0.066430 ... 0.650922 0.758805 0.448107 0.664060 0.923742 0.563842 0.963763 0.634112 0.943547 0.277540
4 0.737489 0.088993 0.887788 0.783618 0.154229 0.646554 0.649964 0.458868 0.535735 0.419357 ... 0.299188 0.180115 0.244154 0.800606 0.064398 0.665558 0.502236 0.777374 0.939236 0.907948
5 0.211469 0.518740 0.258009 0.669228 0.507891 0.561564 0.867016 0.188172 0.749954 0.467626 ... 0.225084 0.441328 0.694882 0.817158 0.552874 0.537532 0.115093 0.543791 0.034233 0.778791
6 0.343946 0.880380 0.231436 0.192562 0.916107 0.021313 0.975490 0.219741 0.698656 0.506352 ... 0.512907 0.957507 0.258529 0.734369 0.757271 0.713988 0.388670 0.086245 0.663918 0.679773
7 0.982413 0.776863 0.352873 0.272454 0.705776 0.105242 0.649339 0.127062 0.655501 0.776311 ... 0.220118 0.272943 0.245174 0.436132 0.037625 0.187643 0.615592 0.058919 0.573035 0.765318
8 0.249716 0.687485 0.323589 0.605468 0.122717 0.607954 0.116775 0.545862 0.601487 0.510816 ... 0.173497 0.736962 0.436200 0.635635 0.336970 0.225108 0.066986 0.437094 0.327171 0.651059
9 0.477024 0.804410 0.520621 0.251052 0.512090 0.155425 0.579456 0.943275 0.022175 0.635136 ... 0.316939 0.631615 0.463521 0.415427 0.905898 0.898094 0.149950 0.693533 0.221796 0.966813
10 0.317880 0.306459 0.084306 0.713852 0.385076 0.857218 0.096751 0.397386 0.648722 0.323559 ... 0.188888 0.366867 0.622417 0.802035 0.446026 0.552871 0.702380 0.288050 0.553756 0.574177
11 0.499070 0.752395 0.996066 0.378952 0.843003 0.093795 0.310451 0.045367 0.841575 0.690082 ... 0.407933 0.934846 0.689559 0.071082 0.344150 0.831786 0.473617 0.914371 0.366394 0.283473
12 0.943410 0.720237 0.543442 0.385631 0.768054 0.591755 0.730742 0.529900 0.294391 0.495960 ... 0.547509 0.818871 0.806232 0.442937 0.440860 0.169447 0.584755 0.436921 0.006258 0.619964
13 0.179326 0.760713 0.182186 0.670680 0.678732 0.761327 0.428410 0.779151 0.747744 0.599381 ... 0.484679 0.529199 0.928070 0.294489 0.440652 0.106265 0.170487 0.639856 0.519882 0.987917
14 0.056025 0.629802 0.977545 0.658098 0.862397 0.123460 0.949861 0.059172 0.615887 0.450150 ... 0.324923 0.156255 0.745297 0.299434 0.566796 0.086708 0.685972 0.187975 0.770196 0.805439
15 0.512351 0.653988 0.769904 0.990763 0.157606 0.412472 0.467803 0.710103 0.879640 0.745679 ... 0.483111 0.023145 0.404432 0.331049 0.769805 0.401911 0.982737 0.708876 0.557452 0.350600
16 0.851925 0.700177 0.762888 0.314232 0.394194 0.009929 0.567694 0.887770 0.459956 0.384007 ... 0.877070 0.578805 0.682054 0.817754 0.187930 0.815588 0.288723 0.759027 0.307923 0.385493
17 0.620958 0.787456 0.390768 0.055931 0.775903 0.779081 0.698823 0.160972 0.860040 0.983636 ... 0.162996 0.808032 0.818766 0.665004 0.782833 0.460531 0.219354 0.643656 0.088890 0.051677
18 0.123906 0.231519 0.667075 0.008801 0.404813 0.241242 0.262940 0.560614 0.542335 0.521399 ... 0.534192 0.329566 0.189557 0.818821 0.545051 0.410484 0.593889 0.542941 0.949775 0.887700
19 0.897231 0.290945 0.371099 0.648910 0.388507 0.892250 0.640442 0.429782 0.228143 0.748801 ... 0.867375 0.589733 0.661740 0.532929 0.042675 0.818236 0.291838 0.270660 0.576204 0.596013

20 rows × 40 columns

Use seaborn

import seaborn as sns

Works quite well with small arrays.

sns.heatmap(np.random.rand(3, 5), annot=True)
<matplotlib.axes._subplots.AxesSubplot at 0x12097a110>

... but the solution doesn't scale well:

sns.heatmap(np.random.rand(20, 40), annot=True)
<matplotlib.axes._subplots.AxesSubplot at 0x11feed650>

This is why ndpretty was born.