「大人の教養・知識・気付き」を伸ばすブログ

一流の大人(ビジネスマン、政治家、リーダー…)として知っておきたい、教養・社会動向を意外なところから取り上げ学ぶことで“気付く力”を伸ばすブログです。目下、データ分析・語学に力点を置いています。

MENU

Pythonによるデータ分析(その06/X)

 仕事上、早々に\mathrm{Python}を使えるようにしないといけないため、

を基に学んでいく。

3. NumPyの基礎:配列とベクトル演算

 \mathrm{NumPy}は"\mathrm{Numerical\ Python}"の意味で\mathrm{Python}での数値計算におけるもっとも重要な基本パッケージの1つである。

3.1 NumPy ndarray:多次元配列オブジェクト

 \mathrm{ndarray}に対する算術操作は、その配列要素全てに作用する。

3.1.2 ndarrayのデータ型

 \mathrm{ndarray}のデータ型を\mathrm{dtype}という。メモリ上のデータ表現形式を示す特別なオブジェクトでメタデータでもある。

arr1 = np.array([1,2,3], dtype = float64)

\mathrm{dtype}がメモリ上にその要素の機械表現を保持するために、柔軟にデータのやり取りができる。

型コード 説明
\mathrm{int8,uint8} \mathrm{i1,u1} 符号あり/なし8ビット整数型
\mathrm{int16,uint16} \mathrm{i2,u2} 符号あり/なし16ビット整数型
\mathrm{int32,uint32} \mathrm{i4,u4} 符号あり/なし32ビット整数型
\mathrm{int64,uint64} \mathrm{i8,u8} 符号あり/なし64ビット整数型
\mathrm{float16} \mathrm{f2} 半精度浮動小数点型
\mathrm{float32} \mathrm{f4} 単精度浮動小数点型
\mathrm{float64} \mathrm{f8} 倍精度浮動小数点型
\mathrm{float128} \mathrm{f16} 四倍精度浮動小数点型
\mathrm{complex64,complex128,complex256} \mathrm{c8,c16,c32} 複素数
\mathrm{bool} ? 真偽値型
\mathrm{object} \mathrm{0} \mathrm{Python}オブジェクト型
\mathrm{string}_ \mathrm{S} 固定長文字列型
\mathrm{unicode}_ \mathrm{U} 固定長ユニコード文字列型


 \mathrm{dtype}をキャストするには\mathrm{astype}メソッドを用いる。文字列型として格納されていた数値を数値型にキャストすることもできる(ただし\mathrm{NumPy}の文字列データは固定長であるため、警告なしに切り捨てられる。)。

arr = np.array([1,2,3,4,5])
float_arr = arr.astype(np.float64)

print(float.arr.dtype)
3.1.3 ndarrayの算術演算

 \mathrm{ndarray}では要素ごとの処理のためにループを書かずともベクトル演算ができる*1

import numpy as np
arr = np.array([[1.,2.,3.],[4.,5.,6.]])
arr2 = np.array([[0.,4.,1.],[7.,2.,12.]])

print(arr)

# ベクトル演算
arr_prod = arr * arr
print(arr_prod)

arr_subtract = arr - arr
print(arr_subtract)

arr_divide = 1 / arr
print(arr_divide)

arr_power = arr ** 0.5
print(arr_power)

arr_inequality = arr > arr2
print(arr_inequality)

*1:Rと同じという事である。

プライバシーポリシー お問い合わせ