# 矩阵运算1
a = np.array([1,2,3,4,5])
a = a +1# 无需使用for循环进行逐个增加,简化了矩阵的运算# 矩阵运算2-广播机制
a = np.array([[1,2,3,4,5],[6,7,8,9,10]])
b = np.array([1,2,3,4,5])
c = a + b
# c = ([[2, 4, 6, 8, 10], [7, 9, 11, 13, 15]])# 矩阵运算3-标量和矩阵# 使用标量对矩阵进行加减乘除,都相对于使用标量对数组内每一个元素进行加减乘除操作# 矩阵运算4-矩阵间运算(区别于2)# 使用矩阵加减乘除矩阵,都相当于对应位置元素各自的加减乘除。
>>> a
array([[2,19,0,12,8],[0,15,13,0,19],[14,19,15,15,12],[6,15,12,4,8]])>>> a>10
array([[False,True,False,True,False],[False,True,True,False,True],[True,True,True,True,True],[False,True,True,False,False]])>>> np.sum(a>10)# True的个数12>>> np.all(a>0)False>>> np.any(a==0)True>>> np.all(a>0, axis=1)# 按行进行判断
array([False,False,True,True])>>> b = a[a>2]# 掩码操作>>> b
array([19,12,8,15,13,19,14,19,15,15,12,6,15,12,4,8])
花哨的索引
# 一维数组的索引>>> b
array([19,12,8,15,13,19,14,19,15,15,12,6,15,12,4,8])>>> index =[0,4,7]>>> c =b[index]>>> c
array([19,13,19])>>> index = np.array([[1,0],[2,3]])>>> c = b[index]>>> c # 由于索引是二元数组,但是原数组是一维数组,所以按照索引产生一个二维数组,索引中的元素为一维数组的下标
array([[12,19],[8,15]])
# 多维数组的索引>>> a
array([[2,19,0,12,8],[0,15,13,0,19],[14,19,15,15,12],[6,15,12,4,8]])>>> row = np.array([0,1,2])>>> col = np.array([1,2,3])>>> b = a[row,col]>>> b # a[0,1],a[1,2],a[2,3]
array([19,13,15])>>> row.reshape(-1,1)
array([[0],[1],[2]])>>> b = a[row.reshape(-1,1),col]# 这里使用了广播机制,所以索引其实是一个3*3的二维数组>>> b
array([[19,0,12],[15,13,0],[19,15,15]])