この記事では、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()
コメント