NumPy
前回、アルファベットのリストを作成する方法を紹介しました。
あわせて読みたい


【Python基礎】アルファベットのリストを作成する方法
アルファベットのリスト 前回、NumPyのargsortでソートの方法を変えた場合の処理時間の計測結果を紹介しました。 今回はアルファベットのリストを作成する方法を紹介し…
今回は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)を描く方法を紹介します。
ではでは今回はこんな感じで。
コメント