numpy是python数据分析的重要工具,其N维数组对象可以方便的进行各种数学计算。

ndarray是一种同构的多维容器,其元素类型必须相同。每个ndarray都有shape和dtype两个属性(注意是属性不是方法)

一、创建ndarray

创建ndarray的方法有很多,常用的有下面几种:

1、使用numpy的array方法将序列型对象转换为ndarray

python numpy用法讲解_numpy

这里将一个列表转换为了ndarray,也可以传入元组,嵌套列表等序列型对象

2、使用numpy的arange方法

python numpy用法讲解_编程语言_02

3、使用zeros()、ones()等创建全0或全1数组或eye()、identity()创建单位矩阵

python numpy用法讲解_python_03python numpy用法讲解_numpy_04

在创建矩阵时也可用通过dtype参数或通过astype方法指定数据类型。

二、矩阵操作

1、数组和标量间的运算

数组和标量间的运算会将标量值传到各个数组元素上进行运算

python numpy用法讲解_数学计算_05

2、数组间的算术运算,相等大小的数组间运算会应用到元素级

python numpy用法讲解_数学计算_06

3、索引和切片

numpy的数组索引和python列表语法一样

python numpy用法讲解_numpy_07

和列表最重要的区别是对numpy数组索引的改变会直接修改原数组

python numpy用法讲解_numpy_08

若想仅仅得到一份切片副本,则需显示的进行复制操作,arr[5:8],copy()

4、转置

numpy数组转置可以通过两个方法实现,一个是transpose()方法,另一个是T属性

python numpy用法讲解_数据分析_09

5、numpy提供了很多元素级处理数组的方法

python numpy用法讲解_数学计算_10

还有很多如abs,log,ceil,cos,sin,csoh,sinh,tan,tanh等方法,可以到官网查看

三、线性代数

numpy.linalg提供了很多进行线性代数运算的方法

diag 以一维数组的形式返回方阵的对角线元素或将一维数组转换为方阵

dot 矩阵乘法

trace 计算对角线元素的和

det 计算矩阵行列式

eig 计算方阵的本征值和本征向量

inv 计算方阵的逆

pinv 计算方阵的moore-penrose伪逆

svd 计算奇异值分解

qr 计算QR分解

solve 解线性方程组Ax=b,A为一个方阵

lstsq 计算Ax=b的最小二乘解

python numpy用法讲解_数学计算_11