Python学习(包括:矩阵,矩阵的运算,矩阵水平方向和垂直方向的合并,模块化矩阵的序列化和反序列化等)
#coding:utf-8
import numpy as np
a =np.array([1,2,3])
b =np.array([4,5,6])
# 矩阵的算术运算 必要:两个矩阵的维度相同,运算之后的结果不改变维度
# print(a * b)
# 数学计算(线性代数) 两个二维矩阵: 第一个矩阵第一轴 长度 ==第二个矩阵第二个轴长度
a =np.array([[1,2,3],[3,2,1]])
# b =np.array([[2,2],[3,3],[4,4],[5,5]])
# result=np.dot(b,a) # 一定改变维度
# a.dot(b)
# print(result)
print(a)
# print(a.T) # 轴交换
# print(a.dot(a.T))
print(a.sum(1))
_______________________________________________________________________________________________________
#coding:utf-8
import numpy as np
a=[1,2,2,1]
b=[3,5,6,7]
c=[True,True,False,False]
# 推导出一个新列表, zip函数[(1,3,True),(2,5,True)]
result=[ x if z else y for x,y,z in zip(a,b,c) ]
# print(result)
# print(np.where(c,a,b))
a =np.random.randint(0,10,(3,3))
print(a)
# 大于3的元素相加
print(np.where(a>3,a,0).sum())
a=np.array([True,False,True,False])
b=np.array([False,False,True,False])
# a & b =True,1, a=true 2,b=true 3 ,0
print(np.where(a&b,1,np.where(a,2,np.where(b,3,0))))
_____________________________________________________________________________________________________
#coding:utf-8
import numpy as np
a =np.array([[1,2,3],[3,2,1]])
b =np.array([[4,5,6],[6,5,4]])
# 水平方向的合并
# result=np.hstack((a,b))
result=np.concatenate((a,b),1) # concatenate 第二个参数代表轴axis=0 (列方向)
print(result)
# 垂直方向的
# print(np.vstack((a,b)))
c =np.array([1,2,3])
print(np.tile(c,2))
_____________________________________________________________________________________________________