numpy(2)

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. 不使用广播的方法
    直接将[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]]
  1. 使用广播的方法(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]]
  1. 广播的一些其他应用
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)
  1. 解线性方程组
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个数
posted @ 2019-04-08 19:54  ayang818  阅读(194)  评论(0)    收藏  举报