目录
Numpy库是用于科学计算的一个开源Python托充程序库,是其他数据分析包的基础包,他为Python提供了高性能数组与矩阵运算处理能力。本节将讲解多维数组的创建及其基本属性、数组的切片和索引方法、数组的运算与存取等内容。最后还有案例。
1.1ndarry数组
Numpy库为Python带来了真正的ndarry多维数组功能。ndarray对象是一个快速而灵活的数据集容器。本节主要学习ndarray多维数组的创建方法、数组的属性和数组中的简单操作等内容。
1.1.1创建ndarray数组
通过NumPy库的array函数,即可轻松的创建ndarray数组。NumPy库能将序列数据(列表、元组、数组或其他序列类型)转换为ndarray数组
对于多维数组的创建,使用嵌套序列数据即可完成,这时我们可以数" [ " 来确定是几维数组,下列括号第一个括号后面两个“ [ ”那么这就是一个二维数组。
通常来讲,ndarray是一个通用的同构数据容器,即其中的所有元素都需要是相同的类型,当创建好一个ndarray数组时,同时会在内存中存储ndarray的shape和dtype。shape是ndarray维度大小的元组,dtype是解释说明ndarray数据类型的对象。下面数组arr3的shape的意思是2行3列,dtype的意思是int32类型。
在创建数组时,NumPy会为新建的数组推断出一个合适的数据类型,并保存在dtype对象中,如下图。当序列中有整数和浮点数时,NumPy会把数组的dtype定义为浮点数类型数据。
除了可以使用np.array创建数组外,NumPy库还有一些函数可创建一些特殊的数组,下面就简单介绍几个常用的数组创建函数。
1.zeros函数
zeros函数可以创建指定长度或形状的全0数组,如下图
2.ones函数
ones函数可以创建指定长度或形状全1数组,如下图
3.empty函数
empty函数可以创建一个没有具体值的数组(垃圾值),如下图创建的是2个2行3列的数组。
注意:数据的基本类型基本都是float64类型。
4.arange函数
arange函数类似于Python的内置函数range,但是arange函数主要用于创建数组,如下图
更多数组创建函数,如下表
函数 | 使用说明 |
arange |
类似于内置range函数,用于创建数组 |
ones | 创建指定长度或形状的全1数组 |
one_like | 以另一个数组为参考,根据其形状和dtype创建全1数组 |
zeros、zeros_like | 类似于ones、ones_like,创建0数组 |
empty、empty_like | 同上,创建没有具体值的数 |
eye、identity | 创建正方形的N*N单位矩阵数值或0或1 |
这里再介绍以下ones_like函数的用法,如下图
1.1.2ndarray对象属性
Numpy创建的ndarray对象属性,如下表
属性 | 使用说明 |
.ndim | 秩,即数据轴的个数(个人来看这才是数组的维度) |
.shape | 反应几行几列 |
.size | 元素的总数 |
.dtype | 数据类型 |
.itemsize | 数组中每个元素字节大小 |
对于shape和dtype属性在前面已经说过了,这里看下其他属性的使用,如下图
arr数组的类型数据是int32位,对于计算机而言,1个字节是8位,所以arr的itemsize属性值为4
1.1.3ndarray数据类型
由前面内容得知:在创建数组时,NumPy会为新建的数组推断出一个合适的数据类型。同样,也恶意通过dtype给创建的数组指定数据类型,如下图
数组的数据类型有很多,我们只需要记住最常见的几种数据类型就行,如浮点数(float)、整数(int)、复数(complex)、布尔值(bool)、字符串(string_)和Python对象(object)
对于创建好的ndarray,可以通过astype方法进行数据类型的转换,如下图
注:np.float64和“float64”都可以完成操作
如果将浮点数转换为整数,并不会使用四舍五入的方式来转换,二十元素的小数部分被截断如下图
如果数组是字符串类型且全是数字的话,也可以通过astype方法将其转换为数值类型