Numpy笔记
numpy的属性
- shape返回一个元组分别记录着行数与列数
- size返回矩阵元素的个数
- ndim返回行数
- A.T返回矩阵的反向矩阵
1
2
3
4
5
6
7
8
9import numpy as np
array = np.array([[1, 2, 3],
[2, 3, 4]])
print array
pront 'number of dim:', array.ndim
print 'shape:', shape
print 'size:', size
'''反向矩阵'''
print A.T #T应该为A的一个属性,不影响A的值
建创数组或矩阵
- np.array()括号里输入矩阵,后有参数dtype选择类型可填int64等
- np.linspace得到n(n为最后一个参数)个(起点终点也算在内)从起点到终点的等距离点
- np.zeros与np.ones的参数是一个元祖,也可填参数dtpye
- A.reshape(n,m)可将数组或矩阵变形,参数为新形状
- 无论什么方法生成的在交互环境下去用print 得到的结果没有‘,’而直接输入名字结果有‘,’,list就不一样,用不用print都有‘,’
1 | import numpy as np |
python的基本运算
- 矩阵与数字之间的加减乘除为矩阵的每个元素与次数相运算
- 矩阵之间的+、-、*、/分别为对应位置的元素相互运算
- 矩阵之间的乘法表示为np.dot(a,b),或a.doot(b)
- **表示的是乘方A ** n表示A的n次方不表示矩阵的点乘
- numpy中也有sin等各种函数
- 矩阵之间的比较,返回都是True与False的矩阵
1 | import numpy as np |
numpy的方法
- np.argmin(A)、np.argmax(A)返回最大值与最小值的索引
- sum()返回矩阵元素的和,min(),max()返回最小最大值,可加上参数axis = 0 or 1表示对列行进行运算
- A.mean()、np.mean(A)、np.average(A)进行求平均值np.median(A)求中位数
- A.cumsum()、np.cumsum()将矩阵元素累加,返回维度减少了一个的数组(只有一个中括号)A.diff(A)将矩阵元素累减返回少一列的矩阵
- np.sort(A)排序不改变原来矩阵返回排好的矩阵,A.sort改变原来矩阵返回None
- np.clip(A, 5, 9)返回一个元素不大于9不小于5的矩阵,大于9小于5的分别被赋值成了9,5
- np.transpose(A)反回A的反向矩阵
1 | import numpy as np |
numpy的索引
- A[2]对行进行索引,A[2][2]进行二次索引,即索引到了行一次后又对这一行进行了索引
- A[2, 1]对行列进行索引,也可以切片,行列都可以,
- for循环默认迭代每一行,可用A.T使其迭代其每一列,用A.flat迭代其每个元素,A.flatten()返回矩阵中的每个元素
1 | import numpy as np |
numpy矩阵合并
- 合并的矩阵维度都是相同的(中括号的数量是相同的)
- np.vstack((A, B))用于快速合并上下合并,np.hstack((A, B))用于快速左右合并
- 只有一个大括号的矩阵可以用A[:, np.newaxis]增加维度,这其实是个索引符号,不改变原来的矩阵
- np.concatenate((), axis = o or 1)可自由合并axis = 0表示对列进行操作所以是上下合并
1 | import numpy as np |
矩阵分割
- 用np.split(A, 2, axis = 0 or 1)等量分割参数分别为要分割的矩阵和分成的快数,分割的方向
- np.array_split(...)参数都一样不过分不了的会分成不等的几份
- 快速分割vsplit(A, 2)参数为矩阵和快数
1 | import numpy as np |
numpy的cope与deep copy
- 普通的赋值只是得到了原矩阵的一个引用A.copy()返回了一个新的与元矩阵不再同一地址的矩阵
1 | import numpy as np |