Numpy必须掌握的50条基础命令

想要学习机器学习的同学应该知道的工具之一:Numpy。

Numpy是Python语言的一个扩充程序库,支持大量高维度数组与矩阵运算,并提供了大量的数学函数库。机器学习涉及到大量对数组的变换和运算,NumPy 就成了必不可少的工具之一。

基础部分
  1. 导入Numpy
import numpy as np
  1. 查看Numpy版本信息
print(np.__version__)
  1. 通过列表创建一维数组
 np.array([1,2,3])
  1. 通过列表创建二维数组
 np.array([(1,2,3),(4,5,6)])
  1. 创建全为 0 的二维数组
 np.zeros((3,3))
  1. 创建全为 1 的三维数组
 np.ones((2,3,3))
  1. 创建一维等差数组
 np.arange(0,10,2)
  1. 创建二维等差数组
  np.arange(0,10,2).reshape(2,2)
  //reshape 可以在不改变数组数据的同时,改变数组的形状。
  1. 创建单位矩阵(二维数组)
 np.eye(3)
  1. 创建等间隔一维数组
 np.linspace(1,20,num=5)
  1. 创建二维随机数组
 np.random.rand(2,5)
  1. 创建二维随机整数数组(数值小于 5)
 np.random.randint(5,size=(2,5))
  1. 依据自定义函数创建数组
 np.fromfunction(lambda i,j: i+j, (4,5))
 //定义4行5列的数组
数组运算

先自己定义两个数组,这里我定义为:
x1=np.array([1,2,3,4])
x2=np.array([5,6,7,8])

  1. 一维数组加法运算
x1+x2
  1. 一维数组减法运算
x1-x2
  1. 一维数组乘法运算
x1*x2
  1. 一维数组除法运算
x1/x2

使用以下代码将上述一维数组转变为二维数组,此时看成是一个矩阵:
X1=x1.reshape(2,2)
X2=x1.reshape(2,2)
18. 矩阵加法运算

X1+X2
  1. 矩阵减法运算
X1-X2
  1. 矩阵元素间乘法运算
X1*X2
//对应行相乘的乘积,对应的列相乘的乘积
  1. 矩阵乘法运算(注意与上题的区别)
np.dot(X1,X2)

此时的矩阵乘法是基于以下公式实现的:
( A B ) i j = ∑ k = 1 p a i k b k j = a i 1 b 1 j + a i 2 b 2 j + ⋯ + a i p b p j (AB)_{ij}=\sum_{k=1}^{p}a_{ik}b_{kj}=a_{i1}b_{1j}+a_{i2}b_{2j}+\cdots +a_{ip}b_{pj} (AB)ij=k=1paikbkj=ai1b1j+ai2b2j++aipbpj
22. 数乘矩阵

4*X1
  1. 矩阵的转置
X1.T
  1. 矩阵求逆
np.linalg.inv(X1)
数学函数
  1. 三角函数
np.sin(a)
//a是一个一维数组
  1. 以自然对数函数为底数的指数函数
np.exp(a)
  1. 数组的方根的运算(开平方)
np.sqrt(a)
  1. 数组的方根的运算(立方)
np.power(a,3)
数组切片和索引
  1. 一维数组索引
a=np.array([2,4,6,8,10])
a[0], a[3], a[-1]
  1. 一维数组切片
a[:3]   //从头取三个数
a[1:4]   //下标1取到下标为4但不包含下标4所对应的数
a[:-1]   //从头取到最后一个数,但不包含最后一个数
  1. 二维数组索引
b=np.array([(1,2,3),(4,5,6),(7,8,9)])
b[1,2]
  1. 二维数组切片(取第 2 列)
b[ :,-2]
//或者你用b[ :,1]也可以
  1. 二维数组切片(取第 2,3 行)
b[1:3, :]
数组形状操作

示例数组:
a=np.random.rand(3,4)
34. 查看数组形状

a.shape
  1. 更改数组形状(不改变原始数组)
a.reshape(4,3)
  1. 更改数组形状(改变原始数组)
a.resize(4,3)
  1. 展平数组
a.ravel()
  1. 垂直拼合数组
np.vstack(a,b)
  1. 水平拼合数组
np.hstack(a,b)
  1. 沿横轴分割数组
np.hslipt(a,b)
  1. 沿纵轴分割数组
np.vslipt(a,b)
数组排序
  1. 返回每列最大值
np.max(a,axis=0)
  1. 返回每行最小值
np.min(a,axis=1)
  1. 返回每列最大值索引
np.argmax(a,axis=0)
  1. 返回每行最小值索引
np.argmin(a,axis=1)
数组统计
  1. 统计数组各列的中位数
np.median(a,axis=0)
  1. 统计数组各行的算术平均值
np.mean(a,axis=1)
  1. 统计数组各列的加权平均值
np.average(a,axis=0)
  1. 统计数组各行的方差
np.var(a,axis=1)
  1. 统计数组各列的标准偏差
np.std(a,axis=0)

后期还有一些进阶命令等待更新。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值