NumPy 數據類型

Python 中的數據類型

默認情況下,Python 擁有以下數據類型:

  • strings - 用于表示文本數據,文本用引號引起來。例如 "ABCD"。
  • integer - 用于表示整數。例如 -1, -2, -3。
  • float - 用于表示實數。例如 1.2, 42.42。
  • boolean - 用于表示 True 或 False。
  • complex - 用于表示復平面中的數字。例如 1.0 + 2.0j,1.5 + 2.5j。

NumPy 中的數據類型

NumPy 有一些額外的數據類型,并通過一個字符引用數據類型,例如 i 代表整數,u 代表無符號整數等。

以下是 NumPy 中所有數據類型的列表以及用于表示它們的字符。

  • i - 整數
  • b - 布爾
  • u - 無符號整數
  • f - 浮點
  • c - 復合浮點數
  • m - timedelta
  • M - datetime
  • O - 對象
  • S - 字符串
  • U - unicode 字符串
  • V - 固定的其他類型的內存塊 ( void )

檢查數組的數據類型

NumPy 數組對象有一個名為 dtype 的屬性,該屬性返回數組的數據類型:

實例

獲取數組對象的數據類型:

import numpy as np
arr = np.array([1, 2, 3, 4])
print(arr.dtype)

運行實例

實例

獲取包含字符串的數組的數據類型:

import numpy as np
arr = np.array(['apple', 'banana', 'cherry'])
print(arr.dtype)

運行實例

用已定義的數據類型創建數組

我們使用 array() 函數來創建數組,該函數可以使用可選參數:dtype,它允許我們定義數組元素的預期數據類型:

實例

用數據類型字符串創建數組:

import numpy as np
arr = np.array([1, 2, 3, 4], dtype='S')
print(arr)
print(arr.dtype)

運行實例

對于 iufSU,我們也可以定義大小。

實例

創建數據類型為 4 字節整數的數組:

import numpy as np
arr = np.array([1, 2, 3, 4], dtype='i4')
print(arr)
print(arr.dtype)

運行實例

假如值無法轉換會怎樣?

如果給出了不能強制轉換元素的類型,則 NumPy 將引發 ValueError。

ValueError:在 Python 中,如果傳遞給函數的參數的類型是非預期或錯誤的,則會引發 ValueError。

實例

無法將非整數字符串(比如 'a')轉換為整數(將引發錯誤):

import numpy as np
arr = np.array(['a', '2', '3'], dtype='i')

運行實例

轉換已有數組的數據類型

更改現有數組的數據類型的最佳方法,是使用 astype() 方法復制該數組。

astype() 函數創建數組的副本,并允許您將數據類型指定為參數。

數據類型可以使用字符串指定,例如 'f' 表示浮點數,'i' 表示整數等。或者您也可以直接使用數據類型,例如 float 表示浮點數,int 表示整數。

實例

通過使用 'i' 作為參數值,將數據類型從浮點數更改為整數:

import numpy as np
arr = np.array([1.1, 2.1, 3.1])
newarr = arr.astype('i')
print(newarr)
print(newarr.dtype)

運行實例

實例

通過使用 int 作為參數值,將數據類型從浮點數更改為整數:

import numpy as np
arr = np.array([1.1, 2.1, 3.1])
newarr = arr.astype(int)
print(newarr)
print(newarr.dtype)

運行實例

實例

將數據類型從整數更改為布爾值:

import numpy as np
arr = np.array([1, 0, 3])
newarr = arr.astype(bool)
print(newarr)
print(newarr.dtype)

運行實例