python numpyの配列の型を変更する

python numpyの配列の型を変更する

pythonで、ライブラリnumpyのarrayを使用して、配列の型を変更するサンプルコードを記述してます。pythonのバージョンは3.8.5を使用してます。

環境

  • OS windows10 pro 64bit
  • python 3.8.5

numpyインストール

numpyをインストールされていない方は、pipでインストールしておきます。

pip install numpy

# Successfully installed numpy-1.19.4

配列の型を変更

array関数のdtypeに型を指定すると、型を変換することが可能です。

以下は、float型の配列をint型に変換してます。

import numpy as np

arr = np.array([1.1, 2.22, 3.14])

newarr = np.array(arr, dtype = int)

print(newarr)
# [1 2 3]

文字列からint型に変換

import numpy as np

arr = np.array(["1", "2", "3"])

newarr = np.array(arr, dtype = int)

print(newarr)
# [1 2 3]

文字列からfloat型に変換

import numpy as np

arr = np.array(["1.1", "2.1", "3.1"])

newarr = np.array(arr, dtype = float)

print(newarr)
# [1.1 2.1 3.1]

文字列に変換する場合は「dtype = “<U”)」と指定します。

import numpy as np

arr = np.array([1.1, 2.22, 3.14])

newarr = np.array(arr, dtype = "<U")

print(newarr)
# ['1.1' '2.22' '3.14']

「dtype = “<U”)」の「U」の後に数値を指定することで文字数を制限することも可能です。

import numpy as np

arr = np.array([1.1, 2.22, 3.14])

# 3文字に制限
newarr = np.array(arr, dtype = "<U3")

print(newarr)
# ['1.1' '2.2' '3.1']

複素数型に変換することも可能です。

import numpy as np

arr = np.array([1.1, 2.22, 3.14])

newarr = np.array(arr, dtype = complex)

print(newarr)
# [1.1 +0.j 2.22+0.j 3.14+0.j]