NumPy で文字列をフロートに変換する

Vaibhav Vaibhav 2023年1月30日
  1. astype() メソッドを使用して文字列を NumPy の Float に変換する
  2. asarray() メソッドを使用して文字列を NumPy の Float に変換する
  3. asfarray() メソッドを使用して文字列を NumPy の Float に変換する
NumPy で文字列をフロートに変換する

数値データと文字列データ間の変換は、処理が少し難しいです。しかし、Python では、Python にはそのような変換を駆動するために特別に作成された多くの組み込み機能があるため、これはほとんど簡単です。

Python には、パフォーマンスと速度を向上させてこれらの変換を処理するための外部ライブラリも多数あります。NumPy はそのようなライブラリの 1つです。

NumPy は Python ライブラリであり、多次元の配列と行列、およびそれらに対して実行できるあらゆる種類の数学的および論理的計算に関するものです。この記事では、NumPy 自体を使用して NumPy 文字列配列を NumPy フロート配列に変換する方法を紹介します。

astype() メソッドを使用して文字列を NumPy の Float に変換する

astype は、タイプ ndarray のオブジェクトの組み込みクラス関数です。このメソッドは ndarray のコピーを返し、それを指定されたデータ型にキャストします。

astype() メソッドの構文は次のとおりです。

astype(dtype, order, casting, subok, copy)

以下のパラメータがあります。

  • dtype - NumPy 配列がキャストされるデータ型です。
  • order - これはオプションのパラメータです。このパラメータは、結果の配列または出力のメモリレイアウトを制御します。
  • casting - これはオプションのパラメータです。このパラメーターは、実行されるキャストまたは変換のタイプを制御します。デフォルトでは、その値は unsafe です。
  • subok - これはオプションのブールパラメータです。出力配列のタイプが nparray または ndarray のサブクラスであるかどうかを決定します。
  • copy - これはオプションのブールパラメータです。出力を新しく割り当てられた配列にするかどうかを決定します。

このメソッドを使用して、変換を実行できます。次のコードスニペットを参照してください。

import numpy as np

stringArray = np.array(
    ["1.000", "1.235", "0.000125", "2", "55", "-12.35", "0", "-0.00025"]
)
floatArray = stringArray.astype(float)
print(stringArray)
print(floatArray)

出力:

['1.000' '1.235' '0.000125' '2' '55' '-12.35' '0' '-0.00025']
[ 1.000e+00  1.235e+00  1.250e-04  2.000e+00  5.500e+01 -1.235e+01
  0.000e+00 -2.500e-04]

この方法の詳細については、その公式ドキュメントを参照してください。

asarray() メソッドを使用して文字列を NumPy の Float に変換する

asarray() は、入力配列を指定されたタイプの NumPy 配列に変換する NumPy 関数です。入力配列は、Python のリスト、タプル、リストのタプル、タプルのリスト、リストのリスト、タプルのタプル、および NumPy 配列自体にすることができます。

asarray() メソッドの構文は次のとおりです。

asarray(a, dtype, order, like)

以下のパラメータがあります。

  • a - 変換されるのは入力配列です。
  • dtype - 変換された配列のデータ型を参照します。デフォルトでは、この関数は入力配列からデータ型を自動的に推測します。
  • order - これはオプションのパラメータです。このパラメータは、変換された配列のメモリレイアウトを決定します。
  • like - これはオプションのブールパラメータです。新しく作成された配列の定義を制御します。

この方法の詳細については、公式文書を参照してください。

import numpy as np

stringArray = np.array(
    ["1.000", "1.235", "0.000125", "2", "55", "-12.35", "0", "-0.00025"]
)
floatArray = np.asarray(stringArray, dtype=float)
print(stringArray)
print(floatArray)

出力:

['1.000' '1.235' '0.000125' '2' '55' '-12.35' '0' '-0.00025']
[ 1.000e+00  1.235e+00  1.250e-04  2.000e+00  5.500e+01 -1.235e+01
  0.000e+00 -2.500e-04]

asfarray() メソッドを使用して文字列を NumPy の Float に変換する

最後に、それは asfarray() です。あなたはすでにこの方法が何をするかを推測しているかもしれません。入力配列を float 型の NumPy に変換します。

asfarray() メソッドの構文は次のとおりです。

asfarray(a, dtype)

このメソッドには 2つのパラメーターしかありません。

  • a - float 配列に変換するのは入力配列です。
  • dtype - これはオプションのパラメーターであり、出力配列のデータ型を参照します。str または float データ型の 1つにすることができます。その値が整数データ型の 1つである場合、データ型 float64 に自動的に置き換えられます。
import numpy as np

stringArray = np.array(
    ["1.000", "1.235", "0.000125", "2", "55", "-12.35", "0", "-0.00025"]
)
floatArray = np.asfarray(stringArray, dtype=float)
print(stringArray)
print(floatArray)

出力:

['1.000' '1.235' '0.000125' '2' '55' '-12.35' '0' '-0.00025']
[ 1.000e+00  1.235e+00  1.250e-04  2.000e+00  5.500e+01 -1.235e+01
  0.000e+00 -2.500e-04]

詳細については、公式文書を参照してください。

著者: Vaibhav Vaibhav
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.