【NumPy】リストの要素を任意の最大値・最小値内の数値に丸めるclip[Python]

  • URLをコピーしました!
目次
  1. NumPy
  2. clip

NumPy

前回、アルファベットのリストを作成する方法を紹介しました。

今回はNumPyのリストの要素を任意の最大値・最小値内の数値に丸めるclipという関数を紹介します。

それでは始めていきましょう。

clip

clipの使い方としては「np.clip(リスト, 最小値, 最大値)」として用います。

import numpy as np

data = [1, 2, 3, 4, 5, 6, 7]

print(np.clip(data, 2, 6))

実行結果
[2 2 3 4 5 6 6]

範囲にマイナスの値が入っていても使えます。

import numpy as np

data = [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5]

print(np.clip(data, -2, 3))

実行結果
[-2 -2 -2 -2 -1  0  1  2  3  3  3]

新しい要素に格納する場合は「np.clip(リスト, 最小値, 最大値, 新しい変数)」とします。

import numpy as np

data = [1, 2, 3, 4, 5, 6, 7]

new_data = np.zeros(len(data))

np.clip(data, 2, 6, new_data)

print(data)
print(new_data)

実行結果
[1, 2, 3, 4, 5, 6, 7]
[2. 2. 3. 4. 5. 6. 6.]

もちろん「新しい変数 = np.clip(リスト, 最小値, 最大値)」でも可能です。

import numpy as np

data = [1, 2, 3, 4, 5, 6, 7]

new_data = np.clip(data, 2, 6, new_data)

print(data)
print(new_data)

実行結果
[1, 2, 3, 4, 5, 6, 7]
[2. 2. 3. 4. 5. 6. 6.]

ちなみに最大値と最小値を逆にしてしまった場合、リストの要素全てが最大値に設定した値になります。

import numpy as np

data = [1, 2, 3, 4, 5, 6, 7]

print(np.clip(data, 6, 2))

実行結果
[2 2 2 2 2 2 2]

また最小値だけ、最大値だけを指定することはできません。

import numpy as np

data = [1, 2, 3, 4, 5, 6, 7]

print(np.clip(data, 2))

実行結果
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[9], line 5
      1 import numpy as np
      3 data = [1, 2, 3, 4, 5, 6, 7]
----> 5 print(np.clip(data, 2))

TypeError: clip() missing 1 required positional argument: 'a_max'

リストの要素が文字列だった場合はエラーとなります。

import numpy as np

data = ["a", "b", "c", "d", "e", "f", "g"]

print(np.clip(data, "c", "f"))

実行結果
---------------------------------------------------------------------------
UFuncTypeError                            Traceback (most recent call last)
Cell In[7], line 5
      1 import numpy as np
      3 data = ["a", "b", "c", "d", "e", "f", "g"]
----> 5 print(np.clip(data, "c", "f"))

(中略)

UFuncTypeError: ufunc 'clip' did not contain a loop with signature 
matching types (dtype('<U1'), dtype('<U1'), dtype('<U1')) -> None

次回はmatplotlibでイベントプロット(eventplot)を描く方法を紹介します。

ではでは今回はこんな感じで。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次
  1. NumPy
  2. clip