2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

NumPyでデータ作成を始める

Posted at

NumPyとは?

なむぴー?なむぱい?
ナムパイ、ナンパイが正解らしい
NumPyは、行列、ベクトル、多次元配列を効率よく処理できるライブラリ!
Pythonだけでも辞書、リストとかで割と柔軟にデータを扱えるけど、実際のデータ量を相手にすると速度面で無謀なんだって...

(数ⅢCやってない文系出身の私は「行列」とか聞くと、スッと理解できるか不安・・・^^;)

pandasのベースのライブラリとされているので、データ分析の際に一緒に使われることが多い
しかも使い方もpandasと似ている
まぁなにはともあれ...

触ってみよう

内容が内容なので少しずつまとめていく
今回はNumPyを使ってリストから多次元配列を作る、そしてそのプロパティを知るところまで見る

リストから多次元配列を作る

  • 1次元配列ベクトル
    image.png
    ウンウン、そのままの結果

  • 2次元配列行列
    image.png
    まぁ、そのままではある

  • 3次元配列(3次元以上: テンソル   Tensor!?)
    image.png
    って、これがどう使われるのかがわからんから、全然ピンと来ない!!
    何をやってるんや...

なぜ速くなるのか

np.array()で作られたデータは numpy.ndarrayという型になっている
ndarrayは要素を全て同じ型で持つことによって処理速度を速めている
image.png
image.png
image.png

ndarrayの持つプロパティ

  • ndim
    • 次元数を返す
  • shape
    • 各次元のサイズをタプルで返す 2次元配列なら (行数, 列数)
  • size
    • 要素数
  • reshape
    • 配列を指定した次元(行数、列数など)で作り直した配列を返す

image.png
image.png
reshapeの多次元から多次元への変換は感動度が高いな〜 楽チン

ndarrayの持つプロパティ 難易度アップ

  • T
    • 転地。行と列を入れ替えた配列を返す。3次元以上でも使える。 (Tだけ!?w)
  • itemsize
    • 1要素のバイト数を返す
  • nbytes
    • 多次元配列全体のバイト数を返す (ネーミング揃えてよ!)

image.png
image.png

3次元の転地がもうヤバい・・・
image.png

感想

行列、テンソルを頭で考えようとするとぐちゃぐちゃになってきそう・・・
まだなんか多次元の配列作ってるなぁ程度だけど、行列とかの考え方に慣れてきてないから難しそう〜〜
細切れにちょっとずつ進めよう

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?