NumPy 資料型別
Python 中的資料型別
預設情況下,Python 具有以下資料型別:
字串
- 用於表示文字資料,文字用引號括起來。例如:"ABCD"整數
- 用於表示整數。例如:-1, -2, -3浮點數
- 用於表示實數。例如:1.2, 42.42布林值
- 用於表示 True 或 False。複數
- 用於表示複數。例如:1.0 + 2.0j, 1.5 + 2.5j
NumPy 中的資料型別
NumPy 包含一些額外的資料型別,並使用單個字元來表示資料型別,例如 i
表示整數,u
表示無符號整數等。
下面是 NumPy 中所有資料型別及其字元表示的列表:
i
- 整數b
- 布林值u
- 無符號整數f
- 浮點數c
- 複數浮點數m
- 時間差M
- 日期時間O
- 物件S
- 字串U
- Unicode 字串V
- 為其他型別保留的固定記憶體塊 ( void )
檢查陣列的資料型別
NumPy 陣列物件有一個名為 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)
自己動手試一試 »
對於 i
, u
, f
, S
和 U
,我們也可以定義大小。
示例
建立 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)
自己動手試一試 »