Python Python 入門 プログラミング

【python 入門】numpyとは?基本的な使い方

pythonでは必須ライブラリのnumpyについて説明していきます。

numpyはデータ解析でも画像処理でも出てくるので、習得必須になります。

 

本記事はこんな方におすすめです。

hituji
pythonを勉強し始めたら、numpyというものが出てきたがどういったものかわからない

 

本記事の内容

  • numpyとは
  • numpyの用途
  • numpyの基本的な使い方

 

python入門 基礎まとめも参考にしてください。

>> python 入門 基礎まとめ

 

サンプルコード

 

 

スポンサーリンク

numpyとは

numpyは行列などの多次元の数値計算を効率的にできるライブラリです。

例えば、次のようなデータ1、2を掛け算、足し算や行列としての計算もできます。

 

用途

多次元の計算ができるので、色々な使い方があります。

 

用途例

  • データの計算、統計値計算
  • データの異常度計算
  • 画像処理
  • 機械学習

 

計算処理は大抵numpyが考慮されているので、他のライブラリでの処理結果をnumpyを使って処理するということもよくあります。

 

 

基本的な使い方

numpyを読み込む

numpyの読み込みはほぼ固定です。

npの部分を他に変更することもできますが、他の人が見た時にややこしいので、できる限り上記を使いましょう。

 

データを作る

numpyのデータを作っていきます。

 

numpyでデータを作る

0、1、乱数を作ってみます。

zerosメソッドで、0を作ります。今回は2次元の[5, 3] = 5×3のデータを作っています。

 

onesメソッドで、1を作ります。

 

random.randで、0-1の乱数を作成します。

 

乱数は他にもnp.randomモジュールの中に複数ありますが、今回は乱数が作れるという紹介にとどめておきます。

 

おまけに、データのサイズと型を確認してみます。

データのサイズを確認します。

行数5、列数3なのがわかります。

データのサイズの確認はしょっちゅうしますので、ぜひ覚えておいてください。

 

次に型を確認します。

ndarrayという型なのがわかります。

これは、こういう型だと確認しただけで、しょっちゅう確認することはありません。

 

list,tuple,dictからデータを作る

listから作る。np.array()の引数にlistを入れるだけです。

 

tupleでも作りますが、listと同じです。

 

最後にdictから作ります。辞書データをnumpyにしますが、key値を無視しています。

 

a列=[1, 4, 7]のデータというイメージでいるので、np.array(list_data).T(転置行列で向きを変えています。

 

for文は内包表記を使っています。見たことない方は、下記記事参照ください。

参考【python 入門】list(リスト)の内包表記の書き方、使い方

続きを見る

 

ファイルからデータを作る

ファイルからデータを読み込んで、numpyのデータを作りましょう。

次のtxtファイルを読み込みます。

readlines()で1行ずつ読み取り、rstrip()で余分な改行文字を消しています。

 

次のCSVを読み込みます。

ほとんど、txtと同じですが、CSVファイルなので、split()を使ってカンマを分割しています。

 

画像からデータを作る

画像の読み込みもnumpyのデータになります。

画像読み込みにはopencvを使います。

インストール必要な方は、他のライブラリ同様pipでインストールしてください。

次の猫を読んでみます。

データのサイズが3次元であることがわかります。

縦横以外にRGBの色情報があるためです。

 

データを計算する

次に計算をしていきます。

numpyではブロードキャスト(形状の自動変換)いう考えがあるので、しっかり理解していきましょう。

四則演算

最初に、同じ行数、列数のデータを足し算します。

これは、それぞれ対応する要素が足されていることがわかりますね。

他の四則演算は-(引く)、*(掛ける)、/(割る)ですので、各自試してみてください。

 

次に、data2の行数、列数が違った場合を考えます。

まず、数値が1つの場合

全部に-1が足されています。

これはどういうことかというと、次のように変換されて、足されているイメージです。

 

次は、列数が一致している場合を計算します。

この場合は、1行を3行文複製しています。

 

行数が一致している場合も同じです。

 

 

行列演算

numpyでは行列演算もできます。

dot()を使って、行列の積を計算します。

 

どうでしょう?numpyがどういったもので、どういうことができるかわかったでしょうか?

 

-Python, Python 入門, プログラミング

© 2021 ひつじ工房