首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python数据分析入门日记Day2:科学技术库Numpy:数组的基本函数

Python数据分析入门日记Day2

——科学技术库Numpy:数组的基本函数

在昨天的日记中,学习了怎么创建数组,今天的内容是:有关数组属性和一些函数的介绍。

1、导入Numpy库,重新定义一个数组,这里定义一个列表套列表的数组。

此时,数组arr4是一个三行四列的矩阵。

2、一些函数

(1).shape()

利用.shape()函数可以查看数组的形状,输出结果为(3,4),说明数组arr4是一个三行四列的矩阵,与事实相符。

(2).dtype()

利用.dtype()函数可以查看数组的数据类型,返回数组arr4的数据类型为整数型。

(3).ravel()和.flatten()

.ravel()和.flatten()函数的作用:将数组拉平(拉直)。具体用法如下:

表面上看.ravel()和.flatten()函数的作用相同,都是将多维数组降成一维数组,但其实.ravel()的返回结果是“视图”形式,.flatten()返回的结果是“拷贝”形式。那什么是“视图”,什么又是“拷贝”呢?举个例子说明区别:

在.flatten()下,对b做一些改变,输出结果:

可以看到,b中的第一个数字变成了13,b发生了改变,而数组arr4没有发生变化。

在.ravel()下,对a做一些改变,输出结果:

注意到a中的第一个数字同样发生改变,变为13,同时,数组arr4中的第一个数字也跟着变为了13。

因此,可以得出两个函数的区别在于:用.flatten()函数得到的是一个“拷贝”(顾名思义,拷贝当然是一模一样啦),当b发生变化,原来数组保持原状;而.ravel()返回的是一个“视图”,一旦对a修改,原数组就会发生改变。

(4).ndim

.ndim函数将返回数组的维度。输出结果如下:

(5).size

.size函数返回的是数组中元素的个数:

(6).T

.T是对数组进行转置的函数,具体操作如下:

(7)len()

len()函数:查看数组有多少行。

(8)np.hstack()和np.column_stack()

np.hstack()和np.column_stack()是Numpy中对两个数组进行横向拼接的函数,定义两个数组arr1和arr2,对它们进行拼接:

或者

但要注意的是:横向拼接要求两个矩阵的行数必须相同。

(9)np.vstack()和np. row_stack()

np.vstack()和np. row_stack()是Numpy中对两个数组进行纵向拼接的函数。

或者

注意:横向拼接要求两个矩阵的列数必须相同。

(10).reshape()和.resize()

.reshape()和.resize()是对数组的形状进行再造的两个函数。重新定义一个一维数组arr5。利用.reshape()将数组arr5重新设置成一个4×6的二维数组,查看原来的数组arr5,发现数组arr5没有发生变化,这也是一个“拷贝”的过程。

利用.resize()修改数组的形状,将c改为一个6×4的二维数组:

另外要注意.reshape()和.resize()的区别,利用.reshape()函数改变数组形状,原数组不会受到影响,但利用.resize()函数,原数组会受影响。因此,常用.reshape()来对数组形状进行修改。

3、数组转换

(1).tolist()

.tolist()的作用是对数组类型进行转变,可以将一个数组类型转换为列表,还是用之前的c为例,先查看c的类型,转换后再查看新的类型,结果显示list,说明转化成了列表形式。具体操作如下:

(2).astype()

.astype()函数可以转化数组中每个元素的数据类型。

首先查看数组c中每个元素的数据类型,返回’int32’,为整数型。对c使用.astype()函数(在括号中输入想要得到的数据类型,如float)生成e,查看e中每个元素的数据类型,返回’float62’,说明已将原先数组中元素的数据类型由整数型变为浮点型。

今天,关于数组的属性和函数的分享就到这里啦,全文用了不少“大白话”,仅仅是我对这些知识的个人理解,感谢大家的阅读和关注,如有什么问题或是意见和建议,欢迎留言交流讨论,晚安!

Ovaltine

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190117G1G2H200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券