numpy工具包常用快速记
文章目录
numpy
这个科学计算工具大法好,但是里面的东西不用老是会忘,所以在此记录常用的一些语法,以备之后查询之用(也叫懒人模式)^_^,不过详细的使用方法还是得看scipy api
使用之前首先得引入包1
import numpy as np
array
np.array
实现了真正的数组,在numpy
中其实就是矩阵啦,同时提供了丰富的矩阵计算方法
np.array
1 | np.array([0, 1, 2, 3]) #一维数组 |
np.arange
1 | np.arange(10) #使用指定range来创建数组 array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) |
np.linspace
1 | np.linspace(0, 1, 6) #开始,终止,创建元素个数 array([ 0. 0.25 0.5 0.75 1. ]) |
arange与linspace都是在指定范围内生成均匀的变量,只是前者是按步长进行生成,后者是按指定的数量进行生成
np.ones
快速生成值为1的矩阵
1 | np.ones(5) #array([ 1., 1., 1., 1., 1.]) |
np.zeros
快速生成值为1的矩阵
1 | np.zeros(5) #array([ 0., 0., 0., 0., 0.]) |
np.eye
快速生成值为1的对角矩阵
1 | np.eye(3) |
np.diag
提取普通矩阵的对角
- 若普通矩阵是1维矩阵,则直接将该1维矩阵转为对角矩阵
- 若普通矩阵是2维矩阵,则提取该对角线(k)的矩阵并返回一个1维矩阵
1 | np.diag(np.array([1,2,3,4])) #将4x1的矩阵转为只有对角线上有值的方正 |
矩阵的四则运算
1 | a=np.arange(9).reshape(3,3) ##0~8的3x3矩阵 |
加减乘除都可以按这个走1
2
3
4
5
6
7
8
9
10
11
12a+1 #在每个元素上+1
"""
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
"""
a+b #两个矩阵相加
"""
array([[8, 8, 8],
[8, 8, 8],
[8, 8, 8]])
"""
还可以做幂次方1
2
3
4
5
6a**2
"""
array([[ 0, 1, 4],
[ 9, 16, 25],
[36, 49, 64]])
"""
还可以倒着运算1
2
3
42**a
array([[ 1, 2, 4],
[ 8, 16, 32],
[ 64, 128, 256]])
summary
- 关于取值,还是按[index]的方式即可取
- 还有很方便的函数:
- 求和:sum
- 转置:T
- 最大最小:max,min
- 方差:var,标准差:std
- 均值:mean
random
用于产生强大的随机数呀,并且可以指定具体的矩阵形状
np.random.rand
产生均匀的0~1之间的随机数
1 | np.random.rand(4) #生成1x4的随机矩阵 array([ 0.78374518, 0.64304815, 0.01667375, 0.50154654]) |
np.random.randn
生成服从高斯分布的随机矩阵
1 | np.random.randn(4) #生成N(0,1)分布的的1x4的矩阵 array([ 0.72481524, -0.1976192 , -0.48224937, -0.8019294 ]) |
参考
- numpy api
- http://www.scipy-lectures.org/ 其实上面写的这里都有-_-