怕有道云笔记内存不够,特意将以前的笔记整理以下保存在博客,以便于以后迁移到自己搭建的博客。
1.创建一个数组(矩阵)
import numpy as np
arr = np.array([[1, 2, 3, 4], [6, 7, 8, 9], [5, 4, 3, 2]])
arr
Out[9]:
array([[1, 2, 3, 4],
[6, 7, 8, 9],
[5, 4, 3, 2]])
1.1 创建一个数组(矩阵),从a到b,步长为c
import numpy as np
np.arange(1, 5, 0.5)
Out[10]: array([1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5])
1.2 创建一个a*b的数组,内容是随机数
import numpy as np
np.random.random((2,2))
Out[11]:
array([[0.04530033, 0.60120636],
[0.45233452, 0.74633991]])
1.3 创建一个从a到b的等差数列,可以不包括终点,endpoint指明是否包含终点
np.linspace(1., 2., num=10, endpoint=False)
Out[15]: array([1. , 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9])
1.4 a*b的1矩阵
np.linspace(1., 2., num=10, endpoint=False)
Out[15]: array([1. , 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9])
1.5 a*b的零矩阵
np.zeros([2,2])
Out[17]:
array([[0., 0.],
[0., 0.]])
1.6 九九乘法表(类比map)
np.fromfunction(lambda i,j:(i+1)*(j+1), (9,9))
Out[18]:
array([[ 1., 2., 3., 4., 5., 6., 7., 8., 9.],
[ 2., 4., 6., 8., 10., 12., 14., 16., 18.],
[ 3., 6., 9., 12., 15., 18., 21., 24., 27.],
[ 4., 8., 12., 16., 20., 24., 28., 32., 36.],
[ 5., 10., 15., 20., 25., 30., 35., 40., 45.],
[ 6., 12., 18., 24., 30., 36., 42., 48., 54.],
[ 7., 14., 21., 28., 35., 42., 49., 56., 63.],
[ 8., 16., 24., 32., 40., 48., 56., 64., 72.],
[ 9., 18., 27., 36., 45., 54., 63., 72., 81.]])
1.7 求秩
arr = np.ones([3,3])
arr.ndim
Out[24]: 2
1.8 求维度
arr = np.ones([3,3])
arr.shape
Out[26]: (3, 3)
1.9 对矩阵进行(临时)转置
arr = np.array([[1,2,3], [4,5,6]])
arr
Out[38]:
array([[1, 2, 3],
[4, 5, 6]])
arr.reshape([3,2])
Out[39]:
array([[1, 2],
[3, 4],
[5, 6]])
2.0 对矩阵进行转置
arr = np.array([[1,2,3], [4,5,6]])
arr.resize([3,2])
arr
Out[42]:
array([[1, 2],
[3, 4],
[5, 6]])
2.1 将两个列表垂直方向拼接(参数为一个元组,另如果将3*3和4*4的列表拼接只会得到7*3的矩阵)
arr1 = np.array([[1,2,3], [4,5,6]])
arr2 = np.array([[7,8,9],[10,11,12]])
np.vstack((arr1,arr2))
Out[49]:
array([[ 1, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9],
[10, 11, 12]])
2.2 将两个列表水平方向拼接
arr1 = np.array([[1,2,3], [4,5,6]])
arr2 = np.array([[7,8,9],[10,11,12]])
np.hstack((arr1,arr2))
Out[52]:
array([[ 1, 2, 3, 7, 8, 9],
[ 4, 5, 6, 10, 11, 12]])
2.3 矩阵所有元素相加
arr2 = np.array([[7,8,9],[10,11,12]])
arr2.sum()
Out[55]: 57
2.4 矩阵元素按列求和
arr2 = np.array([[7,8,9],[10,11,12]])
arr2.sum(axis=0)
Out[57]: array([17, 19, 21])
2.5 求矩阵中元素最大值
arr2 = np.array([[7,8,9],[10,11,12]])
arr2.max()
Out[59]: 12
2.6 求矩阵中元素最小值
arr2 = np.array([[7,8,9],[10,11,12]])
arr2.min()
Out[61]: 7
2.7. 求矩阵中元素最大值下标
arr2 = np.array([[7,8,9],[10,11,12]])
arr2.argmax()
Out[63]: 5
2.8 求矩阵中元素最小值下标
arr2 = np.array([[7,8,9],[10,11,12]])
arr2.argmin()
Out[65]: 0
2.9 求平均值
arr2 = np.array([[7,8,9],[10,11,12]])
arr2.mean()
Out[67]: 9.5
3.0 求方差
arr2 = np.array([[7,8,9],[10,11,12]])
arr2.var()
Out[69]: 2.9166666666666665
3.1 求标准差
arr2 = np.array([[7,8,9],[10,11,12]])
arr2.std()
Out[71]: 1.707825127659933
3.2 求行列式(注意,输入值必须符合行列式概念,否则报错)
arr2 = np.array([[1,2],[3,4]])
np.linalg.det(arr2)
Out[77]: -2.0000000000000004
3.3 计算逆矩阵
arr2 = np.array([[1,2],[3,4]])
np.linalg.inv(arr2)
Out[83]:
array([[-2. , 1. ],
[ 1.5, -0.5]])
3.4 计算矩阵内积
arr2 = np.array([[1,2],[3,4]])
np.dot(arr2,arr2)
Out[85]:
array([[ 7, 10],
[15, 22]])
这一章就先写到这里….手酸