【Python・NumPy】numpy.char.startswith()で文字列がプレフィックスで始まるか判定するブール配列の取得方法
配列内の文字列要素が指定したプレフィックス(接頭辞)で始まる位置においてTrueとなるブール配列を返すには、Python NumPyのnumpy.char.startswith()メソッドを使用します。第1引数には入力配列を、第2引数には判定対象のプレフィックスを指定します。
実行手順
まず、必要なライブラリをインポートします。
import numpy as np
1次元の文字列配列を作成します。
arr = np.array(['KATIE', 'JOHN', 'KATE', 'KmY', 'BRAD'])
作成した配列を表示します。
print("Array...\n", arr)配列のデータ型を確認します。
print("\nArray datatype...\n", arr.dtype)配列の次元数を取得します。
print("\nArray Dimensions...\n", arr.ndim)配列の形状(shape)を取得します。
print("\nOur Array Shape...\n", arr.shape)配列に含まれる要素数を取得します。
print("\nNumber of elements in the Array...\n", arr.size)文字列要素がプレフィックスで始まる位置でTrueとなるブール配列を返すには、numpy.char.startswith()メソッドを使用します。
print("\nResult (startswith)...\n", np.char.startswith(arr, 'K'))サンプルコード
import numpy as np
# 1次元の文字列配列を作成
arr = np.array(['KATIE', 'JOHN', 'KATE', 'KmY', 'BRAD'])
# 配列を表示
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)
# numpy.char.startswith()メソッドを使って、
# 文字列要素がプレフィックスで始まる位置でTrueとなるブール配列を返す
# 第1引数:入力配列、第2引数:プレフィックス
print("\nResult (startswith)...\n", np.char.startswith(arr, 'K'))実行結果
Array... ['KATIE' 'JOHN' 'KATE' 'KmY' 'BRAD'] Array datatype... <U5 Array Dimensions... 1 Our Array Shape... (5,) Number of elements in the Array... 5 Result (startswith)... [ True False True True False]
解説
上記の出力結果から、'K'で始まる要素('KATIE'、'KATE'、'KmY')に対してTrueが、それ以外の要素('JOHN'、'BRAD')に対してFalseが返されていることがわかります。なお、この判定は大文字と小文字を区別するため、たとえば'katie'のような小文字の要素は'K'ではマッチしません。大文字小文字を区別せずに判定したい場合は、np.char.startswith()の代わりに正規表現を利用する方法や、事前にnp.char.upper()などで文字列を揃えてから判定する方法があります。
-
Python NumPyで配列内の文字列が指定した接尾辞で終わるかを判定し、ブール配列を返す方法
配列内の文字列要素が指定した接尾辞(サフィックス)で終わる位置にTrueが格納されたブール配列を返すには、Python NumPyのnumpy.char.endswith()メソッドを使用します。このメソッドはbool型の配列を出力します。第1引数には入力配列を、第2引数には接尾辞を指定します。さらに、オプションのstart引数を指定するとその位置から判定を開始し、オプションのend引数を指定するとその位置で比較を終了します。手順まず、必要なライブラリをインポートします。import numpy as np文字列の1次元配列を作成します。arr = np.array(['KATIE
-
【Python】配列を積が等しい2つの部分配列に分割する要素を見つける方法
問題の概要 サイズ N の配列が与えられたとき、その配列を積が等しい2つの部分配列に分割する要素を見つけます。そのような分割が不可能な場合は -1 を返します。 例えば、入力が [2,5,3,2,5] の場合、出力は 3 となります。このとき配列は {2, 5} と {2, 5} に分割され、それぞれの積はどちらも 10 で一致します。 解き方の考え方 この問題は、先頭からの累積積(プレフィックス積)と末尾からの累積積(サフィックス積)を事前に計算しておくことで効率的に解けます。各位置における左側の積と右側の積を即座に比較できるため、全体の計算量は O(N) に抑えられます。 具体的な手順は