こんにちは!!ようこそ、当ブログgcbgardenへ。管理人のsakurabaaa(@sakurabaaa_g)です。
前回の記事、「matplotlibによるデータの可視化で遊んでみた」で、乱数をそのまま出力してしまい赤ちゃんが書いたような絵になってしまっていたグラフの出力をソートし、1次関数のような直線(ぐにゃぐにゃ)を出力してみました。
以前のグラフの様子
ぐちゃぐちゃです。
前回の記事matplotlibによるデータの可視化で遊んでみた
このぐちゃぐちゃなグラフを出力してしまった以下の以前と同じコードに「sort」するコードを加え実行させてみると…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | %matplotlib inline import matplotlib.pyplot as plt import numpy as np #np.random.seed(0) N =50 #100このデータを生成 x = np.random.rand(N) * 10 #0~1のランダムな数字を生成 10倍 y = np.random.rand(N) * 100 #0~1のランダムな数字を生成 100倍 a = np.sort(x) #xの乱数を小さい値から大きい値へ b = np.sort(y) #yの乱数を小さい値から大きい値へ plt.xlim([-1,11]) #x軸の範囲を指定 plt.ylim([-5,110]) #y軸の範囲を指定 plt.plot(a,b) #直線を生成 plt.show() #グラフを出力 |
numpy乱数をソートした結果
このように出力ができました。
「a」の値を確認してみると確かに綺麗にソートされていました。
1 2 3 4 5 6 7 8 9 10 11 12 13 | array([ 0.41684886, 1.11608849, 1.69483146, 2.47411537, 3.60448526, 5.83869037, 6.86233869, 8.18944391, 8.68018223, 10.48712939, 14.6035737 , 18.2921294 , 20.57975062, 23.9293246 , 24.10406072, 26.43974625, 28.88900687, 29.06556799, 29.4894709 , 30.87508782, 31.51617746, 31.86339006, 32.62355968, 34.36976777, 34.71460597, 39.0125311 , 40.45385479, 46.33577636, 47.55910203, 48.32169237, 48.90591907, 49.50396316, 49.99359474, 50.84371488, 51.8242718 , 52.04937387, 53.86582413, 57.22038426, 59.46219192, 62.32690849, 63.40848052, 63.97210931, 63.99918688, 64.99712904, 69.09153889, 70.62661601, 80.53266883, 82.65301624, 92.97698533, 95.43783068]) |
データ数を10000に
データ数を増やすと綺麗な直線に!!
データ数を10に
データ数を減らすとグニャグニャとしてしまいました。
まとめ
乱数データをソートしたいときは
1 | numpy.sort() |
を、使うべし!!
この記事を書いた人。
20代。とあるネットベンチャーでがんばる働き屋さん、ブロガー。
書きたいことを気ままに書いてます!
Python、プログラミング、米株、カメラ、野球観戦がすき。趣味は新宿散策。