Help us understand the problem. What is going on with this article?

numpy tips

More than 5 years have passed since last update.

配列周りの関数

機能 コマンド 備考
リスト→配列 numpy.array(リスト変数) 変換元の変数はタプルでもOK
リスト→配列(型指定) numpy.array(リスト変数, numpy.データ型)
配列→リスト ndarray.tolist()
配列サイズ ndarray.shape
配列次元数 ndarray.ndim
配列の要素数 ndarray.size
配列のバイト数 ndarray.nbytes
配列の内容 numpy.type(ndarray)
配列の変数型 ndarray.dtype
変数型の変更 ndarray.astype(numpy.データ型)

配列の結合

dstack、hstack、vstackの3種類。それぞれの頭文字がdepth wise (along third axis)、horizontally (column wise)、vertically (row wise)を表している

以下の変数で試す

>>> a = np.array((1,2,3))
>>> b = np.array([4,5,6])
>>> a
array([1, 2, 3])
>>> b
array([4, 5, 6])

dstack

depth wise (along third axis)
転置してから結合ってことかな?

>>> np.dstack((a,b))
array([[[1, 4],
        [2, 5],
        [3, 6]]])

hstack

horizontally (column wise)

>>> np.hstack((a,b))
array([1, 2, 3, 4, 5, 6])

vstack

vertically (row wise)

>>> np.vstack((a,b))
array([[1, 2, 3],
       [4, 5, 6]])

配列のソート

ndarray.sort()を利用すればいい。この場合、ndarray変数の中身がソートされる。
numpy.sort(ndarray)とした場合は、ソートした結果のコピーが返却される。
ちなみに、sortした場合のインデックスを返すndarray.argsort()なんてのもある。
ndarray.sort()はsortする軸の指定があるので、実行時に注意が必要。

以下の変数をソートしてみる

>>> hoge = np.array([[1,3,2],[6,5,4],[9,7,8]])
>>> hoge
array([[1, 3, 2],
       [6, 5, 4],
       [9, 7, 8]])

通常のソート。
行ごとにソートが走る。

>>> np.sort(hoge)
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])

axisを使えば、列ごとにソートする。

>>> np.sort(hoge, axis=0)
array([[1, 3, 2],
       [6, 5, 4],
       [9, 7, 8]])

Structured Arraysにして配列に名前つければ、特定の列指定でソートできるみたい。
しかし、Structured Arraysを上手く作る方法がわからん・・・

*numpyデータ型一覧
調べたら書く

wwacky
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away