首页 > 编程知识 正文

matlab面向对象编程pdf,python数据类型转换函数

时间:2023-05-04 08:07:23 阅读:19577 作者:1831

在本文中,您将玩numpy的数字数据类型转换

导入numpy

import numpy as np

一.自由玩耍

生成浮点数组

a=NP.random.random(4) )。

看信息

a

array ([ 0.0945377,0.52199916,0.62490646,0.21260126 ] ) a.dtype

dype (浮动64 ) ) a.shape

(4、) )。

我发现改变dtype后,数组的长度会增加两倍!

a.dtype='float32 '

a

array (3.65532693 e20,1.43907535 e00,- 3.31994873 e-25,1.75549972 e00,- 2.75686653 e14,1.78122652 e00,-1.03207532e

(8、)。

更改dtype,使数组长度再次加倍!

a.dtype='float16 '

a

array ([-9.58442688 e-05,7.1900000 e02,2.38159180 e-01,1.92968750 e00,nan,-1.66034698e-03,- 2.63427734 e-00000 -1.60156250e-01,- 7.76290894 e-03,4.07226562 e-01,1.94824219 e00 ],dtype=

(16、)。

更改dtype='float '时,我们发现默认值为float64,长度也返回到前4

a.dtype='float '

a

array ([ 0.0945377,0.52199916,0.62490646,0.21260126 ] ) a.shape

(4,) a.dtype

dype (浮动64 ) ) ) )。

设a为整数,观察该信息

a.dtype='int64 '

a

array (4591476579734816328,4602876970018897584,4603876586077261,459682787908854048 ),dtype=int64 ) a.shape

(4、) )。

我发现改变dtype后,数组的长度会增加两倍!

a.dtype='int32 '

a

array (163779016,1069036447,- 1764917584,1071690807,- 67982259,1071906619,- 1611419360,1070282372 ) ) a.SS

(8、)。

我发现改变dtype后,数组的长度会再次翻倍!

a.dtype='int16 '

a

array ([-31160、24990、13215、16312、32432、-26931、- 19401、16352、-17331、-10374、- 197、16355、-20192 )

(16、)。

我发现改变dtype后,数组的长度会再次翻倍!

a.dtype='int8'

a

Array([72,-122,- 98,97,- 97,51,- 72,63,- 80,126,-51,- 106,55,- 32,63,77,- 68,122 )

(32,)。

更改dtype以找到整数的默认int32!

a.dtype='int '

a.dtype

dype(int32 ) ) a

array (163779016,1069036447,- 1764917584,1071690807,- 67982259,1071906619,- 1611419360,1070282372 ) ) a.SS

(8、)。

二.改变玩法

通常,从文本文件中以numpy读取数据,将其作为numpy数组,默认的dtype为float64。

但是,您可能希望将某些数据列设置为整数。 如果直接变更dtype='int ',就会发生错误! 理由如上所述,排列的长度增加了两倍!

在下一个场景中,假设得到了导入的数据。 我们的意图是希望它们是整数,但实际上是浮点数float64

b=NP.Array([1.2 .3 .4.] ) b.dtype

dype (浮动64 ) ) ) )。

通过astype(int )得到整数,不改变数组的长度

c=b.as类型(int ) c

array ([ 1,2,3,4 ]

c.shape

(8,) c.dtype

dype(int32 ) )。

直接改变b的dtype,b的长度会增加一倍。 这不是我们想要的(当然如果你想要的话)。

B

array([1.2 .3 .4.] ) b.dtype='int '

b.dtype

dype(int32 ) ) b

array ([ 0,1072693248,0,1073741824,0,1074266112,0,1074790400 ] ) b.shape

(8、)。

三.结论

使用numpy进行数据类型转换不能直接更改原始数据的dtype! 函数astype (只能使用。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。