【Python NumPy】np.char.count()で部分文字列の重複しない出現回数を配列として返す方法
PythonのNumPyでは、numpy.char.count()メソッドを使用することで、文字列配列の各要素に含まれる部分文字列の「重複しない出現回数」をカウントし、その結果を配列として返すことができます。第1引数には、検索対象となる部分文字列(sub)を指定します。
なお、numpy.charモジュールは、numpy.str_型の配列に対してベクトル化された文字列操作を提供しており、ループ処理を書かずに効率的に文字列操作を行えるのが特徴です。
実行手順
1. 必要なライブラリをインポートする
まず、必要なライブラリをインポートします。
import numpy as np
2. 1次元の文字列配列を作成する
次に、1次元の文字列配列を作成します。
arr = np.array(['kATIE', 'JOHN', 'KAte', 'AmY', 'BRADley'])
3. 配列の情報を確認する
作成した配列を表示してみましょう。
print("Array...\n", arr)配列のデータ型を確認します。
print("\nArray datatype...\n", arr.dtype)配列の次元数を確認します。
print("\nArray Dimensions...\n", arr.ndim)配列の形状を確認します。
print("\nOur Array Shape...\n", arr.shape)配列の要素数を確認します。
print("\nNumber of elements in the Array...\n", arr.size)4. np.char.count()で出現回数をカウントする
重複しない部分文字列の出現回数を含む配列を返すには、numpy.char.count()メソッドを使用します。ここでは、各文字列に含まれる「A」の個数をカウントしています。
print("\nResult (count)...\n", np.char.count(arr, 'A'))サンプルコード(完全版)
import numpy as np
# 1次元の文字列配列を作成
arr = np.array(['kATIE', 'JOHN', 'KAte', 'AmY', 'BRADley'])
# 配列を表示
print("Array...\n", arr)
# データ型を表示
print("\nArray datatype...\n", arr.dtype)
# 次元数を表示
print("\nArray Dimensions...\n", arr.ndim)
# 形状を表示
print("\nOur Array Shape...\n", arr.shape)
# 要素数を表示
print("\nNumber of elements in the Array...\n", arr.size)
# 重複しない部分文字列の出現回数をカウント
# 第1引数は検索対象の部分文字列(sub)
print("\nResult (count)...\n", np.char.count(arr, 'A'))実行結果
Array... ['kATIE' 'JOHN' 'KAte' 'AmY' 'BRADley'] Array datatype... <U7 Array Dimensions... 1 Our Array Shape... (5,) Number of elements in the Array... 5 Result (count)... [1 0 1 1 1]
ポイント解説
np.char.count()は大文字と小文字を区別します。上記の例では「A」(大文字)を検索しているため、「JOHN」のように「A」が含まれない要素は0となり、小文字の「a」しか含まない文字列もカウントされません。
また、このメソッドは第2引数・第3引数としてstart(検索開始位置)とend(検索終了位置)をオプションで指定できるため、文字列の一部範囲だけを対象にカウントすることも可能です。
-
Python・NumPyで文字列配列の各要素の長さを取得する方法
文字列配列の各要素の長さを要素ごとに取得したい場合は、PythonのNumPyが提供する numpy.char.str_len() メソッドを使用します。このメソッドは、各文字列の長さを格納した整数型の出力配列を返します。実行手順まず、必要なライブラリをインポートします。import numpy as np次に、1次元の文字列配列を作成します。arr = np.array([Amy, Scarlett, Katie, Brad, Tom])作成した配列を表示してみましょう。print(Array...\n,arr)配列のデータ型を確認します。print(\nArray datatype...\
-
Python NumPyのrindex()メソッドで部分文字列が見つかる最大インデックスを返す方法
Python NumPyのnumpy.char.rindex()メソッドを使用すると、文字列の中で指定した部分文字列(sub)が見つかった位置のうち、最も大きい(右端の)インデックスを返すことができます。このメソッドはint型の要素を持つ出力配列を返し、部分文字列が見つからない場合はValueErrorが発生します。引数の構成は以下のとおりです。第1引数: 検索対象となる入力配列第2引数: 検索する部分文字列なお、rindex()は文字列の右側から検索を行うため、同じ部分文字列が複数回出現する場合でも、その中で最も後ろ側(インデックスが最大)の位置が返される点が特徴です。手順1. 必要なライブ