numpy官方文档:https://numpy.org/doc/stable/
pip install numpy
import numpy as np
¶ 矩阵定义
= np.array([[1,2],[3,4]]) a
¶ reshape
https://numpy.org/doc/stable/reference/generated/numpy.reshape.html
¶ 求行列式
np.linalg.det(a)
LINear ALGebra
¶ 矩阵拼接
竖直拼接用vstack:
= np.zeros((0, 3)) # 0行3列的矩阵
res = np.vstack([res, [1, 2, 3]])
res = np.vstack([res, [4, 5, 6]])
res res
array([[1., 2., 3.],
[4., 5., 6.]])
水平拼接用hstack,语法跟上面的一样。
¶ 求均值
= np.array([[1., 2., 3.], [4., 5., 6.]])
m # 整个矩阵所有值的平均数
m.mean() =0) # 将第0维干掉。实际上就是求每列的平均数
m.mean(axis=1) # 将第1维干掉。实际上就是求每行的平均数 m.mean(axis
要求标准差的话,把上面的mean
换成std
即可。
¶ 每隔n个元素求均值
import numpy as np
= np.array([1, 4, 2, 3, 5, 6])
a = 2
n -1, n).mean(axis=1) a.reshape(
如果长度不是n的倍数的话,只能这样:
def mean_every_n(a, n):
= len(a) - len(a) % n
split = a[0:split].reshape(-1, n).mean(axis=1)
res if split != len(a):
= np.append(res, a[split:].mean())
res return res
4) mean_every_n(a,
参考:https://www.geeksforgeeks.org/averaging-over-every-n-elements-of-a-numpy-array/#
¶ 每列除以某个向量
= np.array([[1, 2, 3],
matrix 4, 5, 6],
[7, 8, 9]])
[= np.array([1, 2, 3])
vector # vector.shape == (3,),只有一个维度
# 加一个维度
= vector[:, np.newaxis]
column_vector # column_vector.shape == (3, 1)
# 这个时候做除法,numpy会自动对column_vector做broadcasting
/ column_vector matrix
array([[1. , 2. , 3. ],
[2. , 2.5 , 3. ],
[2.33333333, 2.66666667, 3. ]])