Python NumPyで配列内の文字列が指定した接尾辞で終わるかを判定し、ブール配列を返す方法
配列内の文字列要素が指定した接尾辞(サフィックス)で終わる位置にTrueが格納されたブール配列を返すには、Python NumPyのnumpy.char.endswith()メソッドを使用します。このメソッドはbool型の配列を出力します。第1引数には入力配列を、第2引数には接尾辞を指定します。さらに、オプションのstart引数を指定するとその位置から判定を開始し、オプションのend引数を指定するとその位置で比較を終了します。
手順
まず、必要なライブラリをインポートします。
import numpy as np
文字列の1次元配列を作成します。
arr = np.array(['KATIE', 'JOHN', 'KATE', 'AmY', 'CRADlE'])
作成した配列を表示します。
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.endswith()メソッドを使用します。
print("\nResult (endswith)...\n",np.char.endswith(arr, 'E', start = 2, end = 4))コード例
import numpy as np
# Create a One-Dimensional array of strings
arr = np.array(['KATIE', 'JOHN', 'KATE', 'AmY', 'CRADlE'])
# Displaying our array
print("Array...\n",arr)
# Get the datatype
print("\nArray datatype...\n",arr.dtype)
# Get the dimensions of the Array
print("\nArray Dimensions...\n",arr.ndim)
# Get the shape of the Array
print("\nOur Array Shape...\n",arr.shape)
# Get the number of elements of the Array
print("\nNumber of elements in the Array...\n",arr.size)
# To return a boolean array which is True where the string element in array ends with suffix, use the numpy.char.endswith() method in Python Numpy
# The method outputs an array of bools.
print("\nResult (endswith)...\n",np.char.endswith(arr, 'E', start = 2, end = 4))出力結果
Array... ['KATIE' 'JOHN' 'KATE' 'AmY' 'CRADlE'] Array datatype... <U6 Array Dimensions... 1 Our Array Shape... (5,) Number of elements in the Array... 5 Result (endswith)... [False False True False False]
-
【Python】文字列の先頭と末尾が同じ文字かどうかを正規表現で確認する方法
文字列が同じ文字で始まり、かつ同じ文字で終わっているかどうかを確認したい場合、正規表現を活用すると簡単に実現できます。Pythonの re モジュールが提供する search 関数を使ったメソッドを定義すれば、文字列の先頭と末尾が同一の文字であるかどうかを効率的に判定できます。 サンプルコード 以下に具体的な実装例を示します。 import re regex_expression = r^[a-z]$|^([a-z]).*\1$ def check_string(my_string): if(re.search(regex_expression, my_string)):
-
Pythonで指定したサイズ・合計・要素の上限を満たす重複なし配列を作成する方法
問題の概要サイズを表す変数 N、配列内の全要素の合計を表す変数 SUM、そして「どの要素も K を超えてはならない」という上限を表す変数 K が与えられます。このとき、すべての要素が互いに異なる配列を見つけるのが目的です。条件を満たす配列が存在しない場合は -1 を返します。例として、N = 4、SUM = 16、K = 9 が入力された場合、出力は [1, 2, 4, 9] となります。この配列は要素数が4、合計が16、最大値が9以下であり、すべての要素が重複なく並んでいます。解法のアプローチこの問題は、「理論上の最小合計・最大合計による実現可能性の判定」と「貪欲法(グリーディ法)による配列