En raison de la diffusion, si vous ajoutez votre ligne (rouge dans le diagramme) à une colonne (bleue dans le diagramme) de zéros, vous obtiendrez également ce que vous voulez :
np.arange(0, 6) + np.zeros((3,1))
Résultat
([[0., 1., 2., 3., 4., 5.],
[0., 1., 2., 3., 4., 5.],
[0., 1., 2., 3., 4., 5.]])
Avec un peu de chance, vous pouvez voir que la diffusion remplit les tirets à l'intérieur des tableaux en répétant ce avec quoi vous avez commencé, pour remplir le tableau. M
rangs et N
colonnes pour devenir 2 MxN
qui sont ensuite additionnés.
Si vous voulez que votre gradient aille de haut en bas plutôt que de gauche à droite, vous devez transformer votre ligne d'incrémentation en une colonne avant d'ajouter une ligne de zéros :
np.arange(6).reshape(-1,1) + np.zeros((1,8))
Résultat
[0., 0., 0., 0., 0., 0., 0., 0.],
[1., 1., 1., 1., 1., 1., 1., 1.],
[2., 2., 2., 2., 2., 2., 2., 2.],
[3., 3., 3., 3., 3., 3., 3., 3.],
[4., 4., 4., 4., 4., 4., 4., 4.],
[5., 5., 5., 5., 5., 5., 5., 5.]
Et si vous voulez apprendre aux enfants leur table de multiplication :-)
np.arange(1,13).reshape(-1,1) * np.arange(1,13)
Résultat
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
[ 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24],
[ 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36],
[ 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48],
[ 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60],
[ 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72],
[ 7, 14, 21, 28, 35, 42, 49, 56, 63, 70, 77, 84],
[ 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96],
[ 9, 18, 27, 36, 45, 54, 63, 72, 81, 90, 99, 108],
[ 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120],
[ 11, 22, 33, 44, 55, 66, 77, 88, 99, 110, 121, 132],
[ 12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132, 144]]