Pythonで数値を範囲ごとにグループ化するには

やりたいこと

10未満は「0」、
10以上20未満は「1」、
20以上は「2」
のように、
値がどの範囲に入るかを知りたい。

方法

numpyのdigitize()関数を使います。

import numpy as np

範囲を作ります。
10未満、10以上20未満、20以上のグループに分けます。

bins = np.array([10, 20])

数値「0」はどのグループに入るか調べます。

inds = np.digitize(0, bins)
print(inds)
# => 0

数値「15」はどのグループに入るか調べます。

inds = np.digitize(15, bins)
print(inds)
# => 1

数値「25」はどのグループに入るか調べます。

inds = np.digitize(25, bins)
print(inds)
# => 25

数値の配列を渡して、複数の値をまとめて判定します。

x = np.array([0, 15, 25])
inds = np.digitize(x, bins)
print(inds)
# => [0 1 2]

今回のソースコードは次のようになります。

import numpy as np

bins = np.array([10, 20])

inds = np.digitize(0, bins)
print(inds)
# => 0

inds = np.digitize(15, bins)
print(inds)
# => 1

inds = np.digitize(25, bins)
print(inds)
# => 2

x = np.array([0, 15, 25])
inds = np.digitize(x, bins)
print(inds)
# => [0 1 2]

Pythonで区間を等間隔で分割するには

Pythonで区間を等間隔で分割するには

やりたいこと

startからstopまでの区間をnum等分したい。

たとえば、10から50までを5等分したい。

方法

numpyのlinspace()関数を使います。

startからstopまでの区間をnum等分します。

import numpy as np

start = 10
stop = 50
num = 5
lins = np.linspace(start, stop, num)
print(lins)
# => [10. 20. 30. 40. 50.]

DCGANを使って画像を生成してみた

DCGANを使って画像を生成してみました。

学習用のデータにはいらすとやの画像を使用しました。
学習に使用したファイルの数はわずか145個ですが、いらすとや風の画像が作られます。

Herokuを使ったのは初めてですが、簡単に使えて便利ですね。
人気があるのも納得です。
これから使っていきたいと思いました。

DCGANやTensorFlowについては、今後ブログで書くかもしれません。

Anacondaの古いバージョンを取得するには

Anacondaの古いバージョンを取得するには

Anacondaの古いバージョンは、「Anaconda installer archive」からダウンロードできます。

最新版で問題があるときは、古いバージョンを試してみると良いかもしれません。