python有array基本类型吗_PYTHON-numpy.array的大坑 、numpy中的数据类型

1.大坑介绍:

一定要在生成数组(array)时候声明数组所存储变量的变量类型;不然,真的,这个错误几天都找不出来!太隐蔽了!

官网已经给你悄悄暗示了些什么:

总的来说就是自己基础知识不扎实导致的,忽视了一点就是:

python中的list是python的内置数据类型,list中的数据类不必相同的,而array的中的类型必须全部相同。在list中的数据类型保存的是数据的存放的地址,简单的说就是指针,并非数据,这样保存一个list就太麻烦了,例如list1=[1,2,3,'a']需要4个指针和四个数据,增加了存储和消耗cpu。

2.大坑代码:

>>> a = [0,3,2]>>> b = [0,8,2]>>> c =np.array(list(zip(a,b)))>>> c = np.mean([[0,0],[1,1]])>>>c0.5

>>> c = np.mean([[0,0],[1,1]],axis =0)>>>c

array([0.5, 0.5])#看到这的小伙伴,没问题啊?怎么回事,小老弟!

#下面可要看仔细了

>>> c =np.array(list(zip(a,b)))>>> c[0] = np.mean([[0,0],[1,1]],axis =0)>>>c[0]

array([0, 0])#咋回事呢?求个列方向的平均值怎么成0了,不应该是array[0.5,0.5]么

问题就在这,我之前在“灰色行”给c赋予了一个数组的属性,其开始存储的是

array([[0, 0],

[3, 8],

[2, 2]])

这样一个数据,由于其中元素都是int的,所以系统就认为你要的这个数组就是int的,但是最后呢?你要其存储float类型的,作为系统的“好心”,肯定给你转换为int。却恰恰是这个“好心”导致程序出错。

方法:加入数据类型

>>> c = np.array(list(zip(a,b)),dtype =np.float32)>>> c[0] = np.mean([[0,0],[1,1]],axis =0)>>>c[0]

array([0.5, 0.5], dtype=float32)#这样就对了嘛!

3.numpy中的数据类型:

数据类型

描述

bool_

布尔(True或False),存储为一个字节

int_

默认整数类型(与Clong相同;通常是int64或int32)

INTC

与Cint(通常为int32或int64)相同

INTP

用于索引的整数(与Cssize_t相同;通常是int32或int64)

INT8

字节(-128至127)

INT16

整数(-32768至32767)

INT32

整数(-2147483648至2147483647)

Int64的

整数(-9223372036854775808至9223372036854775807)

UINT8

无符号整数(0到255)

UINT16

无符号整数(0到65535)

UINT32

无符号整数(0到4294967295)

UINT64

无符号整数(0到18446744073709551615)

float_

float64的简写。

float16

半精度浮点:符号位,5位指数,10位尾数

FLOAT32

单精度浮点数:符号位,8位指数,23位尾数

float64

双精度浮点:符号位,11位指数,52位尾数

complex_

complex128的简写。

complex64

复数,由两个32位浮点数(实部和虚部)

complex128

复数,由两个64位浮点数(实部和虚部)

4.参考:

https://www.cnblogs.com/chenhuabin/p/11412818.html(numpy中的数据类型) 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值