numpy学习(数组的定义及基础属性)

NumPy最重要的一个特点就是其N维数组对象(即ndarray),该对象是一个快速而灵活的大数据集容器。你可以利用这种数组对整块数据执行一些数学运算,ndarray是一个通用的同构数据多维容器,也就是说,其中的所有元素必须是相同类型的。每个数组都有一个shape(一个表示各维度大小的元组)和一个dtype(一个用于说明数组数据类型的对象)。

数组的创建

  • 通过array方法创建:

创建ndarray;

查看ndarray的维度:

两维数组:通过ndim属性查看

还是一个两维数组,不是三维:

为什么只有两维而不是三维?因为只嵌套了两层,而且这也是3x3的一个陈列,相当于只有两个轴,两个轴就是两个维度,看看三维是什么样的?俏不俏!

多维也就是在外面嵌套一层,当然这个三维数组中只有一个元素。

 

查看维度的大小,如下只有两个维度,所以对应两个大小:通过shape属性查看

除非显式说明(稍后将会详细介绍),np.array会尝试为新建的这个数组推断出一个较为合适的数据类型。

除np.array之外,还有一些函数也可以新建数组。比如,zeros和ones分别可以创建指定长度或形状的全0或全1数组。empty可以创建一个没有任何具体值的数组。要用这些方法创建多维数组,只需传入一个表示形状的元组即可:

一维:

二维:

 

empty可以创建一个没有任何具体值的数组。要用这些方法创建多维数组,只需传入一个表示形状的元组即可:

认为np.empty会返回全0数组的想法是不安全的。很多情况(如前所示),它返回的都是一些未初始化的垃圾值。

 

arange是Python内置函数range的数组版:

下表列出了一些数组创建函数。由于NumPy关注的是数值计算,因此,如果没有特别指定,数据类型基本都是float64(浮点数)。

 

ndarray的数据类型dtype(数据类型)是一个特殊的对象,它含有ndarray将一块内存解释为特定数据类型所需的信息:

数值型dtype的命名方式:一个类型名(如float或int),后面跟一个用于表示各元素位长的数字。标准的双精度浮点值(即Python中的float对象)需要占用8字节(即64位)。因此,该类型在NumPy中就记作float64。表4-2列出了NumPy所支持的全部数据类型。

可以通过ndarray的astype方法显式地转换其dtype

通过astype不会改变源数组的数据类型,通过赋值给变量可以复制源数据并且数据类型为改变后的类型

调用astype无论如何都会创建出一个新的数组(原始数据的一份拷贝),即使新dtype跟老dtype相同也是如此。警告:注意,浮点数(比如float64和float32)只能表示近似的分数值。在复杂计算中,由于可能会积累一些浮点错误,因此比较操作只能在一定小数位以内有效。

可通过另一种方式改变数组的数据类型:

 

使用4-2中的类型代码,以下为为11个长度的字符串

 

posted on 2018-03-07 17:24  疯度翩翩945  阅读(11381)  评论(0编辑  收藏  举报

导航