1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 从数据类型 nvarchar 转换为 numeric 时出错_Python数据分析类库系列Numpy之ndarray的数据类型...

从数据类型 nvarchar 转换为 numeric 时出错_Python数据分析类库系列Numpy之ndarray的数据类型...

时间:2023-02-22 00:42:25

相关推荐

从数据类型 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.dtype

out:

dtype('float64')

arr2.dtype

out:

dtype('float32')

你可以通过ndarray的astype方法明确地将一个数组从一个dtype转换成另一个dtype:

arr = np.array([1, 2, 3, 4, 5, 6, 7])arr.dtype

out:

dtype('float32')

float_arr = arr.astype(np.float64)float_arr.dtype

out:

dtype('float64')

在本例中,整数被转换成了浮点数。如果将浮点数转换成整数,则小数部分将会被截取删除:

arr = np.array([3.7, -1.2, -2.6, 0.5, 12.9, 10.1])arr

out:

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_uint32

out:

array([1, 2, 3, 4, 5, 6, 7, 8], dtype=uint32)

调用astype总会创建一个新的数组(一个数据的备份),即使新的dtype与旧的dtype相同。

下期我们将分享Numpy数组的运算,如果喜欢请点赞收藏,您的支持是我最大的动力,谢谢大家,共同进步。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。