Python
numpy

NumPyの備忘録

NumPy配列の行列を作る。

Python
import numpy
data1 = []
for i in range(32):
  data1.append(i)
data2 = numpy.array(data1, dtype = float)
data3 = numpy.reshape(data2, (4, 8))
print(data3)
print(type(data3))    # numpy.ndarray
print(data3.shape)    # (4, 8)
print(data3.dtype)    # float64
data4 = numpy.empty((3, 7), dtype = float)    # 空のNumPy配列を作成
data5 = numpy.array(data1, dtype = 'float16')    # 'float16' quoteが必要

タブ区切りテキストファイルを読み込む。

Python
data = numpy.loadtxt('data.tsv', delimiter = "\t",    # タブ区切り
         skiprows = 1,    # headerの1行目を読み飛ばす
         usecols = (range(1, 4097)),    # indexの最初の列を読み飛ばし、1から数えた4096列目まで
         dtype = float)    # floatがデフォルトなので必ずしも書く必要はない

NumPy配列をそのままファイルに保存、そのファイルを読み込む。

Python
numpy.save('data.npy', data)
data2 = numpy.load('data.npy')

NumPy配列をタブ区切りテキストファイルに保存

Python
numpy.savetxt('data.tsv', data, delimiter = "\t", fmt = '%.4f')

reshapeで-1を使うと全体のサイズから残りのサイズを計算しうまく割り当ててくれる。

Python
>>> x.shape
(17500, 6252)
>>> reshaped = numpy.reshape(x, (-1, 6252, 10))    # 行列を3階のテンソルに
>>> reshaped.shape
(1750, 6252, 10)

円周率と自然対数の底を利用する。

Python
pi = numpy.pi
e = numpy.e

要素数の多いNumPy配列を表示

numpy.set_printoptions(threshold = numpy.inf)    # 制限なく全て表示
numpy.set_printoptions(threshold = 2048)    # 要素数が2048を超えた場合は省略して表示
numpy.set_printoptions(linewidth = 128)    # 1行に表示する文字数