「matplotlib」numpyのsortを使って乱数の値を整理

Share

こんにちは!!ようこそ、当ブログgcbgardenへ。管理人のsakurabaaa(@sakurabaaa_g)です。

前回の記事、「matplotlibによるデータの可視化で遊んでみた」で、乱数をそのまま出力してしまい赤ちゃんが書いたような絵になってしまっていたグラフの出力をソートし、1次関数のような直線(ぐにゃぐにゃ)を出力してみました。

以前のグラフの様子

ぐちゃぐちゃです。

前回の記事matplotlibによるデータの可視化で遊んでみた

このぐちゃぐちゃなグラフを出力してしまった以下の以前と同じコードに「sort」するコードを加え実行させてみると…

%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」の値を確認してみると確かに綺麗にソートされていました。

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に

データ数を減らすとグニャグニャとしてしまいました。

まとめ

乱数データをソートしたいときは

numpy.sort()

を、使うべし!!

この記事を書いた人。
1992年生まれ。フリーなエンジニア。書きたいことを気ままに書いてます!
好きなことは夏の神宮でビール片手に野球観戦、Appleオタ
趣味は、ゴールデン街散策・Web・IT・ものつくりの開発・勉強などなど

スポンサーリンク

Share

Follow