numpy 基操2.0
- sum函数的参数
suma = np.array([np.arange(10,20),np.arange(10)])
ak = suma.sum(axis= 1)
print(suma.sum(axis= 0))
print(ak)
- 矩阵的转置(前提是矩阵,如果是arange出来的一般需要使用reshape转换成矩阵)
a = np.array([np.arange(10,20),np.arange(10)])
print(a)
>>>[[10 11 12 13 14 15 16 17 18 19]
[ 0 1 2 3 4 5 6 7 8 9]]
print(a.T)
>>>[[10 0]
[11 1]
[12 2]
[13 3]
[14 4]
[15 5]
[16 6]
[17 7]
[18 8]
[19 9]]
numpy中的广播机制
- 情景:将一个3*3的矩阵,每行相加[1,2.3]
- 不使用广播的方法
直接将[1,2,3]制造成一个三行的矩阵,然后相加,使用np.tile(v, (3,1))
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
v = np.array([[1,2,3]])
vv = np.tile(v, (3,1)) #将一个行向量变成一个矩阵
print(vv+a)
>>>[[ 2 4 6]
[ 5 7 9]
[ 8 10 12]]
- 使用广播的方法(Numpy广播允许我们在不实际创建v的多个副本的情况下执行此计算)
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
v = np.array([[1,2,3]])
# vv = np.tile(v, (3,1))
print(v+a)
>>>[[ 2 4 6]
[ 5 7 9]
[ 8 10 12]]
- 广播的一些其他应用
v = np.array([1,2,3]) # v has shape (3,)
w = np.array([4,5]) # w has shape (2,)
print(w.shape)
>>>(2,)
print(np.reshape(v, (3, 1)))
# [[ 4 5]
# [ 8 10]
# [12 15]]
print(np.reshape(v, (3, 1)).shape)
>>>(3,1)
一些其他琐碎的知识点
- 创建单位矩阵,使用eye()方法
print(np.eye(3,3))
- 向量的转置
a = np.array([[3],[3],[3]]).transpose()
print(a)
- 解线性方程组
A = np.array([[2,1,-2],[3,0,1],[1,1,-1]])
b = np.transpose(np.array([[-3,5,-2]]))
print(np.linalg.solve(A,b))
生成固定区间的一些数
x = np.linspace(0,2 100) #生成0到2区间的100个数