SEワンタンの独学備忘録

IT関連の独学した内容や資格試験に対する取り組みの備忘録

【Python】FutureWarning: Arrays of bytes/strings is being converted to decimal numbers if dtype='numeric'.

警告抑止のためのメモ。
警告メッセージは私の環境で以下の通り。

C:\Users\wanta\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\sklearn\base.py:561: FutureWarning: Arrays of bytes/strings is being converted to decimal numbers if dtype='numeric'. This behavior is deprecated in 0.24 and will be removed in 1.1 (renaming of 0.26). Please convert your data to numeric values explicitly instead.
  X = check_array(X, **check_params)

そのままでもpythonプログラム自体は動作するが警告メッセージが気持ち悪いので対応する。

多分、数値として扱いたいところが文字列型になっている。
エラーにならないのは恐らく暗黙的に変換してくれているから。

明示的にfloatに変換する。
numpyを使用している場合には以下で変換できる。

a = ['1.0', '2.0', '3.0', '4.0']
# floatに変換
b = np.array(a, dtype=float)

数値以外の文字列が入ってくる可能性がある場合には事前にチェックが必要になるか。

参考:python - FutureWarning: Arrays of bytes/strings is being converted to decimal numbers if dtype='numeric' - Stack Overflow