【NumPy】配列のスタック(LIFO)

この記事では、Python+NumPyを用いて、配列のスタック(LIFO)操作を実装する方法をソースコード付きで解説します。

スタック(LIFO)

キューは配列に対して以下の動作を行います。

説明
データの追加・・・配列の末尾に行う
データの取り出し・・・配列の末尾から行う

この一連の動作のことをキュー、もしくはFIFO(Last In First Out=後入れ先出し)といいます。
つまり、古いデータほど最後の方まで残ります。

今回はこれをNumPyで実装してみました。

ソースコード(Python3+NumPy)

サンプルプログラムのソースコードです。

# -*- coding: utf-8 -*-
import numpy as np

def stack(src, a):
    b = src[-1]
    dst = np.roll(src, 1)
    dst = np.roll(dst, -1)
    dst[-1] = a
    return dst, b

def main():
    # 1次元配列の生成
    x = np.array([1, 2, 3, 4, 5])
    # スタック操作
    b, y = stack(x, 6)
    print('y=', y) # y= [2 3 4 5 6]


if __name__ == '__main__':
    main()

おすすめ記事

Python入門 サンプル集
NumPy入門 サンプル集

コメント