从数据类型 nvarchar 转换为 numeric 时出错_Python数据分析类库系列Numpy之ndarray的数据类型...
dtype(數據類型)是一個特殊的對象,它含有ndarray將一塊內存解釋為特定數據類型所需的信息:
arr1 = np.array([1, 2, 3,],dtype = np.float64)arr2 = np.array([1, 2, 3,],dtype = np.float32)arr1.dtypeout:
dtype('float64')arr2.dtypeout:
dtype('float32')
你可以通過ndarray的astype方法明確地將一個數組從一個dtype轉換成另一個dtype:
arr = np.array([1, 2, 3, 4, 5, 6, 7])arr.dtypeout:
dtype('float32')
float_arr = arr.astype(np.float64)float_arr.dtypeout:
dtype('float64')在本例中,整數被轉換成了浮點數。如果將浮點數轉換成整數,則小數部分將會被截取刪除:
arr = np.array([3.7, -1.2, -2.6, 0.5, 12.9, 10.1])arrout:
array([ 3.7, -1.2, -2.6, 0.5, 12.9, 10.1])arr.astype(np.int32)out:
array([ 3, -1, -2, ?0, 12, 10])
如果某字符串數組表示的全是數字,也可以用astype將其轉換為數值形式
numeric_strings = np.array(['1.25', '-9.6', '42'], dtype=np.string_)numeric_strings.astype(float)out:
array([ 1.25, -9.6 , 42. ])注意:使用numpy.string_類型時,一定要小心,因為NumPy的字符串數據是大小固定的,發生截取時,不會發出警告。pandas提供了更多非數值數據的便利的處理方法。
如果轉換過程因為某種原因而失敗了(比如某個不能被轉換為float64的字符串),就會引發一個ValueError。這里,我比較懶,寫的是float而不是np.float64;NumPy很聰明,它會將Python類型映射到等價的dtype上。
數組的dtype還有另一個屬性:
int_array = np.arange(10)calibers = np.array([.22, .270, .357, .380, .44, .50], dtype=np.float64)int_array.astype(calibers.dtype)out:
array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])
你還可以用簡潔的類型代碼來表示dtype:
empty_uint32 = np.empty(8, dtype='u4')empty_uint32out:
array([1, 2, 3, 4, 5, 6, 7, 8], dtype=uint32)調用astype總會創建一個新的數組(一個數據的備份),即使新的dtype與舊的dtype相同。
下期我們將分享Numpy數組的運算,如果喜歡請點贊收藏,您的支持是我最大的動力,謝謝大家,共同進步。
總結
以上是生活随笔為你收集整理的从数据类型 nvarchar 转换为 numeric 时出错_Python数据分析类库系列Numpy之ndarray的数据类型...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dbeaver导出建表语句_细致入微:如
- 下一篇: mybatis-plus根据多个字段排序