Python
 Computer >> コンピューター >  >> プログラミング >> Python

【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()などで文字列を揃えてから判定する方法があります。

  1. Python NumPyで配列内の文字列が指定した接尾辞で終わるかを判定し、ブール配列を返す方法

    配列内の文字列要素が指定した接尾辞(サフィックス)で終わる位置にTrueが格納されたブール配列を返すには、Python NumPyのnumpy.char.endswith()メソッドを使用します。このメソッドはbool型の配列を出力します。第1引数には入力配列を、第2引数には接尾辞を指定します。さらに、オプションのstart引数を指定するとその位置から判定を開始し、オプションのend引数を指定するとその位置で比較を終了します。手順まず、必要なライブラリをインポートします。import numpy as np文字列の1次元配列を作成します。arr = np.array(['KATIE&#

  2. 【Python】配列を積が等しい2つの部分配列に分割する要素を見つける方法

    問題の概要 サイズ N の配列が与えられたとき、その配列を積が等しい2つの部分配列に分割する要素を見つけます。そのような分割が不可能な場合は -1 を返します。 例えば、入力が [2,5,3,2,5] の場合、出力は 3 となります。このとき配列は {2, 5} と {2, 5} に分割され、それぞれの積はどちらも 10 で一致します。 解き方の考え方 この問題は、先頭からの累積積(プレフィックス積)と末尾からの累積積(サフィックス積)を事前に計算しておくことで効率的に解けます。各位置における左側の積と右側の積を即座に比較できるため、全体の計算量は O(N) に抑えられます。 具体的な手順は