Pythonで文字列の配列をfloat型の配列に変換する3つの方法【NumPy活用】
Pythonでは、文字列リテラルはシングルクォート(')またはダブルクォート(")で囲みます。変数への文字列の代入は、「変数名 = 文字列」の形式で行います。また、三重引用符(''' または """)を使えば、複数行にわたる文字列もひとつの変数に代入できます。
本記事では、NumPyを使用して文字列の配列をfloat型の配列に変換する3つの方法を、サンプルコードと実行結果つきで解説します。
方法1:astype() を使う
NumPy配列の astype() メソッドを使うと、配列全体のデータ型を一括で変換できます。最もシンプルでよく使われる方法です。
# 文字列の配列をfloatの配列に変換(astype使用)
import numpy as np
# 初期配列の作成
ini_array = np.array(["1.1", "1.5", "2.7", "8.9"])
# 初期配列の表示
print("initial array", str(ini_array))
# float型の配列へ変換
res = ini_array.astype(np.float64)
# 結果の表示
print("final array", str(res))
方法2:fromstring() を使う
np.fromstring() を利用すると、区切り文字で結合した文字列から直接float型の配列を生成できます。join() で要素をカンマ区切りの文字列にしてから変換します。
# 文字列の配列をfloatの配列に変換(fromstring使用)
import numpy as np
# 初期配列の作成
ini_array = np.array(["1.1", "1.5", "2.7", "8.9"])
# 初期配列の表示
print("initial array", str(ini_array))
# カンマ区切りの文字列に結合してから変換
ini_array = ', '.join(ini_array)
ini_array = np.fromstring(ini_array, dtype=np.float64, sep=', ')
# 結果の表示
print("final array", str(ini_array))
方法3:asarray() を使う
np.asarray() に dtype 引数として np.float64 を指定すれば、元の文字列の配列をfloat型の新しい配列に変換できます。
# 文字列の配列をfloatの配列に変換(asarray使用)
import numpy as np
# 初期配列の作成
ini_array = np.array(["1.1", "1.5", "2.7", "8.9"])
# 初期配列の表示
print("initial array", str(ini_array))
# dtypeにfloat64を指定して変換
final_array = b = np.asarray(ini_array,
dtype=np.float64, order='C')
# 結果の表示
print("final array", str(final_array))
実行結果
いずれの方法でも、以下のように文字列の配列がfloat型の数値配列に正しく変換されます。
('initial array', "['1.1' '1.5' '2.7' '8.9']")
('final array', '[ 1.1 1.5 2.7 8.9]')
('initial array', "['1.1' '1.5' '2.7' '8.9']")
('final array', '[ 1.1 1.5 2.7 8.9]')
('initial array', "['1.1' '1.5' '2.7' '8.9']")
('final array', '[ 1.1 1.5 2.7 8.9]')
補足:np.float は非推奨なので注意
古いコード例では np.float が使われていることがありますが、このエイリアスはNumPy 1.20以降で非推奨となり、NumPy 1.24以降では削除されています。現在の環境では、np.float64 やPython組み込みの float を指定するようにしましょう。
-
Pythonで文字列リストの要素の大文字・小文字を変換する方法
データ処理を行っていると、文字列内のすべての文字を統一した大文字または小文字に揃えたい場面に遭遇することがあります。この記事では、大文字と小文字が混在した文字列要素を含むリストを例に、Pythonの組み込み関数を使ってすべての要素を同じケースに変換する方法を解説します。 lower()を使ってすべて小文字に変換する lower()は、文字列全体を小文字に変換する文字列メソッドです。map()とlambdaを組み合わせることで、リスト内の各要素に対してlower()を一括して適用できます。 サンプルコード listA = [MoN, TuE, FRI] # 元のリスト print(Given l
-
Pythonでタプルを配列(リスト)に変換する方法をわかりやすく解説
Pythonでは、タプルを配列(リスト)に変換したい場合、list()コンストラクタを直接使うのが最もシンプルな方法です。タプルはイミュータブル(変更不可)なデータ構造であるため、要素を追加・削除・変更したいときには、リストへの変換が便利です。基本的な変換方法次のように、list()にタプルを渡すだけで簡単に変換できます。x = (1, 2, 3) y = list(x) print(y)出力結果[1, 2, 3]ネストされたタプルをフラットなリストに変換する入れ子(多次元)のタプルを、1次元のフラットなリストに展開したい場合は、リスト内包表記を使うとスマートに処理できます。z = ((1,