Python NumPyのchar.index()メソッドで指定範囲内の部分文字列が見つかった最小インデックスを取得する方法
Python NumPyのnumpy.char.index()メソッドを使用すると、文字列の中で部分文字列(sub)が見つかった位置の最小インデックスを取得できます。このメソッドはint型の出力配列を返し、部分文字列が見つからない場合はValueErrorを発生させます。
各引数の役割は以下の通りです。
- 第1引数: 検索対象となる入力配列
- 第2引数: 検索する部分文字列
- 第3・第4引数(省略可): startとendはスライス表記と同じように解釈され、検索範囲を限定できます
手順
まず、必要なライブラリをインポートします。
import numpy as np
文字列の1次元配列を作成します。
arr = np.array(['KATIE', 'KATE', 'CRATE'])
作成した配列を表示します。
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.index()メソッドを使って、部分文字列「AT」が見つかった最小インデックスを返します。ここではstart=1、end=4を指定して、各文字列の1番目から4番目までの範囲内で検索しています。部分文字列が見つからない場合はValueErrorが発生します。
print("\nResult (index() method)...\n",np.char.index(arr, 'AT', start = 1, end= 4))完全なコード例
import numpy as np
# 文字列の1次元配列を作成
arr = np.array(['KATIE', 'KATE', 'CRATE'])
# 配列を表示
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.index()メソッドで部分文字列が見つかった最小インデックスを返す
# 部分文字列が見つからない場合はValueErrorが発生
print("\nResult (index() method)...\n",np.char.index(arr, 'AT', start = 1, end= 4))出力結果
Array... ['KATIE' 'KATE' 'CRATE'] Array datatype... <U5 Array Dimensions... 1 Our Array Shape... (3,) Number of elements in the Array... 3 Result (index() method)... [1 1 2]
結果の解説
出力結果[1 1 2]は、start=1〜end=4の範囲で検索した際に、各文字列で部分文字列「AT」が最初に現れるインデックスを示しています。「KATIE」ではインデックス1、「KATE」ではインデックス1、「CRATE」ではインデックス2に「AT」が見つかっています。
なお、部分文字列が見つからなかった場合にエラーではなく-1を返したい場合は、代わりにnumpy.char.find()メソッドを使用すると便利です。
-
Python NumPyで配列内の文字列が指定した接尾辞で終わるかを判定し、ブール配列を返す方法
配列内の文字列要素が指定した接尾辞(サフィックス)で終わる位置にTrueが格納されたブール配列を返すには、Python NumPyのnumpy.char.endswith()メソッドを使用します。このメソッドはbool型の配列を出力します。第1引数には入力配列を、第2引数には接尾辞を指定します。さらに、オプションのstart引数を指定するとその位置から判定を開始し、オプションのend引数を指定するとその位置で比較を終了します。手順まず、必要なライブラリをインポートします。import numpy as np文字列の1次元配列を作成します。arr = np.array(['KATIE
-
Python・Pandasでインデックスのデータを表す配列を取得する方法(index.values)
PandasのIndexオブジェクトに格納されているデータをNumPy配列として取得したい場合は、index.valuesプロパティを使用します。このプロパティは、インデックスの各要素を含む配列を返してくれるため、データの抽出や他の処理への受け渡しが簡単に行えます。 index.valuesプロパティの基本的な使い方 まず、必要なライブラリをインポートします。 import pandas as pd 次に、Indexオブジェクトを作成します。ここでは、交通手段の名前を要素とするインデックスを作成してみましょう。 index = pd.Index([Car,Bike,Truck,Ship,Air